{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Multimedia Security Experiment 12\n"
     ]
    }
   ],
   "source": [
    "print(\"Multimedia Security Experiment 12\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import cv2 as cv\n",
    "import myipf # 前面的实验编写的函数\n",
    "from matplotlib.gridspec import GridSpec\n",
    "#from mpl_toolkits.mplot3d.axes3d import Axes3D\n",
    "\n",
    "%matplotlib inline\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"] # 用来正常显示中文\n",
    "plt.rcParams[\"axes.unicode_minus\"] = False # 用来正常显示负号\n",
    "%config InlineBackend.figure_format = \"svg\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二值图像信息隐藏\n",
    "- 利用两种不同的方法实现信息隐藏\n",
    "- 分析二值图像信息隐藏的不可觉察性、容量以及鲁棒性等性能指标之间的关系\n",
    "- 利用两幅图像的与运算决定是否嵌入数据或嵌入什么样的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "img = plt.imread(\"standard_test_images/lena_gray_256.tif\")\n",
    "bin_img = cv.adaptiveThreshold(img, 1, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY, 255, 0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分块，游程编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def insertMark2(src, data):\n",
    "    length = len(data)-2\n",
    "    row, col = int(np.floor(src.shape[0]/length)), int(np.floor(src.shape[1]/length))\n",
    "    total_pixel = row*col\n",
    "    half_pixel = np.ceil(total_pixel/2)\n",
    "    dst_image = src.copy()\n",
    "    for k in range(length):\n",
    "        tmp_block = dst_image[k*row:k*row+row, k*col:k*col+col].copy()\n",
    "        white_pixel = np.count_nonzero(tmp_block)\n",
    "        black_pixel = total_pixel - white_pixel\n",
    "        if data[k+2] == \"1\":\n",
    "            for i in range(tmp_block.shape[0]):\n",
    "                for j in range(tmp_block.shape[1]):\n",
    "                    if tmp_block[i][j] == 0 and white_pixel < half_pixel:\n",
    "                        tmp_block[i][j] = 1\n",
    "                        white_pixel += 1\n",
    "        else:\n",
    "            for i in range(tmp_block.shape[0]):\n",
    "                for j in range(tmp_block.shape[1]):\n",
    "                    if tmp_block[i][j] == 1 and black_pixel < half_pixel:\n",
    "                        tmp_block[i][j] = 0\n",
    "                        black_pixel += 1\n",
    "        dst_image[k*row:k*row+row, k*col:k*col+col] = tmp_block\n",
    "    \n",
    "    return dst_image\n",
    "\n",
    "def getMark2(src, length):\n",
    "    data = \"0b\"\n",
    "    row, col = int(np.floor(src.shape[0]/length)), int(np.floor(src.shape[1]/length))\n",
    "    total_pixel = row*col\n",
    "    half_pixel = np.ceil(total_pixel/2)\n",
    "    for k in range(length):\n",
    "        white_pixel = np.count_nonzero(src[k*row:k*row+row, k*col:k*col+col])\n",
    "        black_pixel = total_pixel - white_pixel\n",
    "        if white_pixel >= half_pixel:\n",
    "            data += \"1\"\n",
    "        else:\n",
    "            data += \"0\"\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "t_img = insertMark2(bin_img, bin(21553324423))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 结果验证"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "getMark2(t_img, 35) == bin(21553324423)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"182.425568pt\" version=\"1.1\" viewBox=\"0 0 349.2 182.425568\" width=\"349.2pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 182.425568 \n",
       "L 349.2 182.425568 \n",
       "L 349.2 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g clip-path=\"url(#peeff1f486f)\">\n",
       "    <image height=\"153\" id=\"image7fa6d633fa\" transform=\"scale(1 -1)translate(0 -153)\" width=\"153\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.225568\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- 原图 -->\n",
       "    <defs>\n",
       "     <path d=\"M 60.15625 66.796875 \n",
       "Q 57.421875 62.890625 56.25 57.8125 \n",
       "L 85.15625 57.8125 \n",
       "Q 84.765625 54.296875 84.765625 46.875 \n",
       "L 84.765625 34.765625 \n",
       "Q 84.765625 28.515625 85.15625 23.046875 \n",
       "L 63.28125 23.046875 \n",
       "L 63.28125 -0.78125 \n",
       "Q 63.28125 -6.25 59.765625 -7.609375 \n",
       "Q 56.25 -8.984375 48.4375 -9.765625 \n",
       "Q 47.65625 -5.078125 45.703125 -0.78125 \n",
       "Q 53.125 -1.171875 54.296875 -0.578125 \n",
       "Q 55.46875 0 55.46875 2.734375 \n",
       "L 55.46875 23.046875 \n",
       "L 33.203125 23.046875 \n",
       "Q 33.59375 27.734375 33.59375 34.375 \n",
       "L 33.59375 47.265625 \n",
       "Q 33.59375 53.515625 33.203125 57.8125 \n",
       "L 49.21875 57.8125 \n",
       "Q 51.5625 66.40625 51.5625 69.140625 \n",
       "L 60.15625 66.796875 \n",
       "z\n",
       "M 4.296875 -5.078125 \n",
       "Q 11.328125 4.296875 13.671875 16.203125 \n",
       "Q 16.015625 28.125 16.015625 35.9375 \n",
       "L 16.015625 64.453125 \n",
       "Q 16.015625 72.65625 15.625 76.5625 \n",
       "L 78.515625 76.5625 \n",
       "Q 87.109375 76.5625 90.625 76.953125 \n",
       "L 90.625 69.921875 \n",
       "Q 87.5 70.3125 78.515625 70.3125 \n",
       "L 23.828125 70.3125 \n",
       "L 23.828125 37.109375 \n",
       "Q 23.4375 25.78125 22.0625 17.375 \n",
       "Q 20.703125 8.984375 17.765625 1.953125 \n",
       "Q 14.84375 -5.078125 12.5 -8.984375 \n",
       "Q 8.59375 -6.25 4.296875 -5.078125 \n",
       "z\n",
       "M 76.953125 43.359375 \n",
       "L 76.953125 51.953125 \n",
       "L 41.015625 51.953125 \n",
       "L 41.015625 43.359375 \n",
       "z\n",
       "M 76.953125 29.296875 \n",
       "L 76.953125 37.5 \n",
       "L 41.015625 37.5 \n",
       "L 41.015625 29.296875 \n",
       "z\n",
       "M 23.046875 -0.78125 \n",
       "Q 28.125 2.34375 32.609375 7.03125 \n",
       "Q 37.109375 11.71875 40.234375 17.1875 \n",
       "Q 43.75 13.671875 46.484375 11.71875 \n",
       "Q 35.9375 -0.78125 28.515625 -6.25 \n",
       "Q 26.171875 -3.515625 23.046875 -0.78125 \n",
       "z\n",
       "M 75.390625 16.796875 \n",
       "Q 89.0625 4.6875 92.578125 0.390625 \n",
       "Q 89.84375 -1.953125 87.109375 -5.078125 \n",
       "Q 82.03125 1.171875 70.3125 11.328125 \n",
       "Q 73.046875 14.453125 75.390625 16.796875 \n",
       "z\n",
       "\" id=\"SimHei-21407\"/>\n",
       "     <path d=\"M 90.625 77.734375 \n",
       "Q 90.234375 67.96875 90.234375 56.25 \n",
       "L 90.234375 14.453125 \n",
       "Q 90.234375 2.34375 90.625 -9.375 \n",
       "L 82.8125 -9.375 \n",
       "L 82.8125 -4.296875 \n",
       "L 17.578125 -4.296875 \n",
       "L 17.578125 -10.15625 \n",
       "L 9.765625 -10.15625 \n",
       "Q 10.15625 1.953125 10.15625 14.84375 \n",
       "L 10.15625 56.25 \n",
       "Q 10.15625 67.578125 9.765625 77.734375 \n",
       "L 90.625 77.734375 \n",
       "z\n",
       "M 82.8125 2.34375 \n",
       "L 82.8125 71.484375 \n",
       "L 17.578125 71.484375 \n",
       "L 17.578125 2.34375 \n",
       "z\n",
       "M 50.390625 66.40625 \n",
       "Q 48.046875 64.0625 46.09375 61.328125 \n",
       "L 72.265625 61.328125 \n",
       "Q 70.703125 57.8125 67.1875 52.734375 \n",
       "Q 63.671875 47.65625 56.25 40.625 \n",
       "Q 67.96875 34.765625 79.296875 33.59375 \n",
       "Q 76.5625 30.078125 74.609375 26.171875 \n",
       "Q 60.15625 30.46875 50.390625 36.71875 \n",
       "Q 39.0625 29.296875 26.171875 25.78125 \n",
       "Q 25 29.296875 21.875 32.421875 \n",
       "Q 34.375 34.375 44.921875 40.625 \n",
       "Q 39.453125 45.703125 37.109375 49.21875 \n",
       "Q 33.59375 45.3125 29.6875 41.40625 \n",
       "Q 26.953125 44.53125 23.828125 46.09375 \n",
       "Q 30.46875 51.5625 35.15625 58.390625 \n",
       "Q 39.84375 65.234375 41.796875 69.921875 \n",
       "Q 45.703125 67.96875 50.390625 66.40625 \n",
       "z\n",
       "M 38.28125 19.921875 \n",
       "Q 55.46875 14.84375 64.0625 11.328125 \n",
       "Q 62.109375 8.203125 60.15625 4.6875 \n",
       "Q 44.140625 11.328125 35.546875 13.28125 \n",
       "Q 37.109375 16.40625 38.28125 19.921875 \n",
       "z\n",
       "M 45.703125 32.03125 \n",
       "Q 58.984375 26.5625 63.671875 25 \n",
       "Q 61.71875 21.875 60.15625 17.96875 \n",
       "Q 46.875 24.21875 42.1875 25.78125 \n",
       "Q 44.140625 28.515625 45.703125 32.03125 \n",
       "z\n",
       "M 41.015625 53.90625 \n",
       "Q 46.875 47.265625 51.171875 44.53125 \n",
       "Q 56.25 48.4375 60.546875 55.078125 \n",
       "L 41.796875 55.078125 \n",
       "L 41.015625 53.90625 \n",
       "z\n",
       "\" id=\"SimHei-22270\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(71.290909 17.04375)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-21407\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-22270\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g clip-path=\"url(#pd7b9cea886)\">\n",
       "    <image height=\"153\" id=\"imagee5bcd56476\" transform=\"scale(1 -1)translate(0 -153)\" width=\"153\" x=\"189.818182\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.225568\"/>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- 对角线分块隐藏信息 -->\n",
       "    <defs>\n",
       "     <path d=\"M 8.203125 66.40625 \n",
       "Q 14.0625 66.015625 21.875 66.015625 \n",
       "L 44.140625 66.015625 \n",
       "Q 40.234375 41.015625 34.375 27.34375 \n",
       "Q 44.140625 13.671875 48.828125 6.25 \n",
       "Q 46.09375 4.296875 42.578125 1.171875 \n",
       "Q 34.375 15.234375 30.46875 20.3125 \n",
       "Q 25.78125 12.109375 21.09375 6.640625 \n",
       "Q 16.40625 1.171875 9.375 -5.46875 \n",
       "Q 6.640625 -1.953125 3.125 -0.390625 \n",
       "Q 9.765625 4.296875 15.234375 10.546875 \n",
       "Q 20.703125 16.796875 25.78125 26.5625 \n",
       "Q 16.40625 37.890625 8.59375 45.3125 \n",
       "Q 10.9375 47.265625 14.0625 50.390625 \n",
       "Q 25.390625 37.890625 29.296875 33.59375 \n",
       "Q 34.375 47.65625 35.9375 59.765625 \n",
       "L 21.875 59.765625 \n",
       "Q 14.0625 59.765625 8.203125 59.375 \n",
       "z\n",
       "M 45.703125 57.8125 \n",
       "Q 55.078125 57.421875 58.59375 57.421875 \n",
       "L 75.390625 57.421875 \n",
       "L 75.390625 69.140625 \n",
       "Q 75.390625 74.21875 74.609375 80.078125 \n",
       "L 83.59375 80.078125 \n",
       "Q 83.203125 75.390625 83.203125 68.359375 \n",
       "L 83.203125 57.421875 \n",
       "Q 87.109375 57.421875 96.09375 57.8125 \n",
       "L 96.09375 50.78125 \n",
       "Q 87.109375 51.171875 83.203125 51.171875 \n",
       "L 83.203125 1.953125 \n",
       "Q 83.59375 -5.46875 78.3125 -7.421875 \n",
       "Q 73.046875 -9.375 66.40625 -10.15625 \n",
       "Q 65.234375 -5.46875 62.890625 -1.5625 \n",
       "Q 71.484375 -1.5625 73.625 -0.578125 \n",
       "Q 75.78125 0.390625 75.390625 5.078125 \n",
       "L 75.390625 51.171875 \n",
       "L 58.984375 51.171875 \n",
       "Q 55.46875 51.171875 45.703125 50.390625 \n",
       "z\n",
       "M 53.90625 42.578125 \n",
       "Q 60.546875 30.859375 65.234375 20.703125 \n",
       "Q 60.15625 18.75 57.8125 16.796875 \n",
       "Q 54.296875 27.34375 47.65625 38.671875 \n",
       "Q 50.390625 39.84375 53.90625 42.578125 \n",
       "z\n",
       "\" id=\"SimHei-23545\"/>\n",
       "     <path d=\"M 48.828125 14.0625 \n",
       "L 25.390625 14.0625 \n",
       "Q 23.046875 1.953125 13.671875 -9.765625 \n",
       "Q 10.15625 -6.25 6.25 -4.6875 \n",
       "Q 12.109375 0.78125 15.234375 7.421875 \n",
       "Q 18.359375 14.0625 19.53125 24.609375 \n",
       "Q 20.703125 35.15625 20.3125 51.953125 \n",
       "Q 17.1875 48.828125 12.890625 45.703125 \n",
       "Q 10.9375 48.828125 6.640625 51.953125 \n",
       "Q 10.15625 53.515625 16.796875 58.390625 \n",
       "Q 23.4375 63.28125 28.90625 70.5 \n",
       "Q 34.375 77.734375 36.71875 82.421875 \n",
       "Q 39.84375 80.078125 44.140625 78.125 \n",
       "Q 42.1875 76.171875 37.890625 70.703125 \n",
       "L 75.390625 70.703125 \n",
       "Q 73.4375 68.359375 63.28125 54.296875 \n",
       "L 87.5 54.296875 \n",
       "Q 87.109375 45.703125 87.109375 39.0625 \n",
       "L 87.109375 0.390625 \n",
       "Q 87.109375 -5.46875 83.203125 -7.03125 \n",
       "Q 79.296875 -8.59375 71.484375 -9.375 \n",
       "Q 70.3125 -5.078125 67.578125 -0.78125 \n",
       "Q 75.390625 -0.78125 77.734375 0 \n",
       "Q 80.078125 0.78125 79.6875 5.078125 \n",
       "L 79.6875 14.0625 \n",
       "L 56.25 14.0625 \n",
       "L 56.25 6.25 \n",
       "Q 56.25 0.390625 56.640625 -7.8125 \n",
       "L 48.046875 -7.8125 \n",
       "Q 48.828125 0 48.828125 7.8125 \n",
       "z\n",
       "M 55.078125 54.296875 \n",
       "L 62.109375 64.453125 \n",
       "L 33.59375 64.453125 \n",
       "Q 28.515625 58.984375 23.046875 54.296875 \n",
       "z\n",
       "M 79.6875 20.3125 \n",
       "L 79.6875 31.25 \n",
       "L 56.25 31.25 \n",
       "L 56.25 20.3125 \n",
       "z\n",
       "M 79.6875 37.5 \n",
       "L 79.6875 47.65625 \n",
       "L 56.25 47.65625 \n",
       "L 56.25 37.5 \n",
       "z\n",
       "M 48.828125 20.3125 \n",
       "L 48.828125 31.25 \n",
       "L 27.34375 31.25 \n",
       "Q 27.34375 25.390625 26.5625 20.3125 \n",
       "z\n",
       "M 48.828125 37.5 \n",
       "L 48.828125 47.65625 \n",
       "L 27.734375 47.65625 \n",
       "L 27.734375 37.5 \n",
       "z\n",
       "\" id=\"SimHei-35282\"/>\n",
       "     <path d=\"M 53.90625 67.1875 \n",
       "Q 53.90625 73.046875 52.734375 80.078125 \n",
       "Q 57.8125 79.6875 63.28125 78.90625 \n",
       "Q 62.109375 76.5625 61.71875 71.28125 \n",
       "Q 61.328125 66.015625 61.71875 56.25 \n",
       "L 75 58.59375 \n",
       "Q 81.640625 60.15625 88.28125 62.109375 \n",
       "L 89.84375 54.6875 \n",
       "Q 83.203125 53.90625 76.171875 52.734375 \n",
       "L 62.109375 50 \n",
       "Q 62.109375 43.75 62.890625 39.0625 \n",
       "L 78.125 41.796875 \n",
       "Q 85.9375 43.359375 92.96875 45.703125 \n",
       "L 94.140625 38.28125 \n",
       "Q 87.109375 37.109375 79.296875 35.546875 \n",
       "L 64.0625 32.8125 \n",
       "Q 64.84375 25 67.96875 18.359375 \n",
       "Q 71.484375 21.09375 74.796875 24.609375 \n",
       "Q 78.125 28.125 80.859375 32.421875 \n",
       "Q 86.71875 27.734375 89.84375 26.171875 \n",
       "Q 84.765625 23.828125 81.828125 20.890625 \n",
       "Q 78.90625 17.96875 72.265625 11.71875 \n",
       "Q 76.953125 3.90625 80.65625 1.75 \n",
       "Q 84.375 -0.390625 85.9375 1.5625 \n",
       "Q 87.5 3.515625 88.671875 9.765625 \n",
       "Q 92.1875 7.03125 96.875 5.46875 \n",
       "Q 90.234375 -11.71875 82.421875 -8.390625 \n",
       "Q 74.609375 -5.078125 66.015625 7.03125 \n",
       "Q 60.546875 2.734375 55.265625 -0.96875 \n",
       "Q 50 -4.6875 42.1875 -8.59375 \n",
       "Q 40.234375 -4.6875 36.328125 -1.5625 \n",
       "Q 44.140625 1.171875 49.609375 4.296875 \n",
       "Q 55.078125 7.421875 62.109375 13.28125 \n",
       "Q 58.59375 21.09375 57.03125 31.640625 \n",
       "Q 45.3125 29.6875 40.625 28.125 \n",
       "L 39.453125 35.546875 \n",
       "Q 44.140625 35.546875 55.46875 37.890625 \n",
       "Q 54.6875 44.140625 54.6875 48.4375 \n",
       "Q 44.140625 46.09375 40.234375 44.921875 \n",
       "L 38.671875 52.34375 \n",
       "Q 42.578125 52.34375 53.90625 54.6875 \n",
       "z\n",
       "M 30.46875 76.171875 \n",
       "Q 26.5625 72.65625 22.84375 66.203125 \n",
       "Q 19.140625 59.765625 12.890625 50.390625 \n",
       "Q 22.265625 50.78125 25.78125 50.78125 \n",
       "Q 29.296875 56.640625 32.03125 63.671875 \n",
       "Q 35.9375 60.9375 40.625 59.375 \n",
       "Q 36.71875 55.46875 32.609375 48.828125 \n",
       "Q 28.515625 42.1875 18.359375 26.171875 \n",
       "Q 28.90625 26.953125 37.109375 27.734375 \n",
       "Q 35.9375 23.828125 35.9375 21.09375 \n",
       "Q 33.203125 21.09375 23.828125 20.109375 \n",
       "Q 14.453125 19.140625 8.59375 17.578125 \n",
       "Q 8.203125 21.484375 6.25 25.78125 \n",
       "Q 10.9375 26.953125 14.84375 32.03125 \n",
       "Q 18.75 37.109375 23.046875 44.921875 \n",
       "Q 10.15625 44.140625 6.640625 41.796875 \n",
       "Q 5.46875 46.09375 3.125 50.390625 \n",
       "Q 8.203125 53.90625 12.890625 61.90625 \n",
       "Q 17.578125 69.921875 21.484375 80.46875 \n",
       "Q 25.390625 77.734375 30.46875 76.171875 \n",
       "z\n",
       "M 40.234375 13.671875 \n",
       "Q 39.84375 9.375 40.234375 7.03125 \n",
       "Q 30.46875 5.078125 22.65625 3.125 \n",
       "Q 14.84375 1.171875 8.203125 -1.171875 \n",
       "Q 7.03125 3.125 3.90625 7.421875 \n",
       "Q 14.84375 8.59375 20.703125 9.5625 \n",
       "Q 26.5625 10.546875 40.234375 13.671875 \n",
       "z\n",
       "M 75.78125 62.890625 \n",
       "Q 73.046875 67.1875 68.359375 73.046875 \n",
       "L 74.609375 76.171875 \n",
       "Q 76.171875 74.21875 82.421875 66.796875 \n",
       "Q 78.515625 65.234375 75.78125 62.890625 \n",
       "z\n",
       "\" id=\"SimHei-32447\"/>\n",
       "     <path d=\"M 15.625 -10.15625 \n",
       "Q 12.890625 -5.859375 8.984375 -3.515625 \n",
       "Q 15.234375 -1.171875 20.3125 2.140625 \n",
       "Q 25.390625 5.46875 29.296875 10.34375 \n",
       "Q 33.203125 15.234375 35.15625 21.09375 \n",
       "Q 37.109375 26.953125 37.890625 35.546875 \n",
       "Q 28.90625 35.546875 23.4375 35.15625 \n",
       "L 23.4375 43.359375 \n",
       "Q 29.6875 42.96875 39.453125 42.96875 \n",
       "L 78.515625 42.96875 \n",
       "Q 77.734375 37.109375 77.34375 32.8125 \n",
       "L 74.21875 3.90625 \n",
       "Q 73.4375 -3.125 67.96875 -5.46875 \n",
       "Q 62.5 -7.8125 55.859375 -8.203125 \n",
       "Q 55.46875 -4.296875 51.953125 0.78125 \n",
       "Q 60.15625 0.390625 63.078125 1.359375 \n",
       "Q 66.015625 2.34375 66.796875 8.203125 \n",
       "L 69.53125 35.546875 \n",
       "L 46.09375 35.546875 \n",
       "Q 44.921875 25.390625 42.765625 18.546875 \n",
       "Q 40.625 11.71875 36.71875 6.640625 \n",
       "Q 32.8125 1.5625 27.34375 -2.734375 \n",
       "Q 21.875 -7.03125 15.625 -10.15625 \n",
       "z\n",
       "M 61.71875 80.859375 \n",
       "Q 64.453125 72.65625 72.84375 62.109375 \n",
       "Q 81.25 51.5625 96.484375 43.75 \n",
       "Q 93.359375 41.015625 90.234375 35.546875 \n",
       "Q 83.203125 40.625 77.921875 45.109375 \n",
       "Q 72.65625 49.609375 69.140625 53.515625 \n",
       "Q 65.625 57.421875 61.328125 64.640625 \n",
       "Q 57.03125 71.875 54.296875 78.125 \n",
       "Q 58.59375 79.296875 61.71875 80.859375 \n",
       "z\n",
       "M 42.1875 75.390625 \n",
       "Q 38.671875 69.140625 36.328125 64.453125 \n",
       "Q 33.984375 59.765625 31.640625 56.046875 \n",
       "Q 29.296875 52.34375 24.609375 46.09375 \n",
       "Q 19.921875 39.84375 13.28125 33.203125 \n",
       "Q 9.765625 36.71875 6.25 38.671875 \n",
       "Q 14.0625 45.703125 18.546875 51.5625 \n",
       "Q 23.046875 57.421875 27.140625 64.25 \n",
       "Q 31.25 71.09375 34.375 79.296875 \n",
       "Q 37.5 76.953125 42.1875 75.390625 \n",
       "z\n",
       "\" id=\"SimHei-20998\"/>\n",
       "     <path d=\"M 55.46875 63.28125 \n",
       "Q 55.46875 75 55.078125 80.859375 \n",
       "Q 57.8125 80.078125 63.671875 79.296875 \n",
       "Q 63.28125 76.5625 63.078125 72.65625 \n",
       "Q 62.890625 68.75 62.890625 63.28125 \n",
       "L 84.765625 63.28125 \n",
       "Q 84.375 57.421875 84.375 50.390625 \n",
       "L 84.375 34.375 \n",
       "Q 91.015625 34.375 95.3125 34.765625 \n",
       "L 95.3125 28.125 \n",
       "Q 89.453125 28.515625 84.765625 28.515625 \n",
       "L 66.40625 28.515625 \n",
       "Q 69.140625 22.265625 72.84375 16.59375 \n",
       "Q 76.5625 10.9375 82.421875 5.46875 \n",
       "Q 88.28125 0 96.484375 -3.515625 \n",
       "Q 93.359375 -5.859375 90.234375 -10.15625 \n",
       "Q 86.71875 -8.203125 81.046875 -3.515625 \n",
       "Q 75.390625 1.171875 70.3125 8 \n",
       "Q 65.234375 14.84375 61.328125 23.4375 \n",
       "Q 57.8125 13.28125 53.125 7.21875 \n",
       "Q 48.4375 1.171875 44.328125 -2.53125 \n",
       "Q 40.234375 -6.25 33.984375 -10.546875 \n",
       "Q 30.859375 -7.03125 28.125 -4.6875 \n",
       "Q 32.8125 -1.953125 37.890625 1.953125 \n",
       "Q 42.96875 5.859375 46.671875 10.34375 \n",
       "Q 50.390625 14.84375 52.34375 19.71875 \n",
       "Q 54.296875 24.609375 54.6875 28.515625 \n",
       "L 45.3125 28.515625 \n",
       "Q 39.0625 28.515625 32.8125 28.125 \n",
       "L 32.8125 34.765625 \n",
       "Q 39.0625 34.375 45.3125 34.375 \n",
       "L 55.46875 34.375 \n",
       "L 55.46875 57.421875 \n",
       "L 51.171875 57.421875 \n",
       "Q 45.3125 57.421875 39.0625 56.640625 \n",
       "L 39.0625 63.671875 \n",
       "Q 44.921875 63.28125 51.171875 63.28125 \n",
       "z\n",
       "M 17.578125 54.6875 \n",
       "L 17.578125 66.40625 \n",
       "Q 17.578125 72.65625 17.1875 78.90625 \n",
       "L 25 78.90625 \n",
       "Q 24.609375 73.046875 24.609375 66.40625 \n",
       "L 24.609375 54.6875 \n",
       "L 27.734375 54.6875 \n",
       "Q 30.46875 54.6875 36.71875 55.078125 \n",
       "L 36.71875 48.4375 \n",
       "Q 30.46875 48.828125 27.734375 48.828125 \n",
       "L 24.609375 48.828125 \n",
       "L 24.609375 19.140625 \n",
       "L 38.671875 23.828125 \n",
       "L 38.671875 17.1875 \n",
       "Q 31.640625 14.84375 22.453125 11.328125 \n",
       "Q 13.28125 7.8125 7.03125 5.078125 \n",
       "Q 4.6875 10.9375 3.125 13.671875 \n",
       "Q 7.421875 14.453125 11.125 15.421875 \n",
       "Q 14.84375 16.40625 17.578125 17.1875 \n",
       "L 17.578125 48.828125 \n",
       "L 16.015625 48.828125 \n",
       "Q 10.15625 48.828125 5.078125 48.4375 \n",
       "L 5.078125 55.078125 \n",
       "Q 10.15625 54.6875 15.625 54.6875 \n",
       "z\n",
       "M 76.953125 34.375 \n",
       "L 76.953125 57.421875 \n",
       "L 62.890625 57.421875 \n",
       "L 62.890625 34.375 \n",
       "z\n",
       "\" id=\"SimHei-22359\"/>\n",
       "     <path d=\"M 63.28125 79.296875 \n",
       "Q 60.15625 76.5625 57.8125 72.65625 \n",
       "L 82.03125 72.65625 \n",
       "Q 78.125 66.015625 76.953125 64.640625 \n",
       "Q 75.78125 63.28125 73.046875 57.421875 \n",
       "L 88.28125 57.421875 \n",
       "Q 87.890625 52.734375 87.890625 45.703125 \n",
       "L 87.890625 36.71875 \n",
       "Q 87.890625 30.46875 88.28125 25.390625 \n",
       "L 56.25 25.390625 \n",
       "Q 48.4375 25.390625 42.578125 25 \n",
       "L 42.578125 31.640625 \n",
       "Q 48.046875 31.25 55.859375 31.25 \n",
       "L 80.859375 31.25 \n",
       "L 80.859375 38.671875 \n",
       "L 56.25 38.671875 \n",
       "Q 48.4375 38.671875 42.578125 38.28125 \n",
       "L 42.578125 44.921875 \n",
       "Q 48.4375 44.140625 55.859375 44.140625 \n",
       "L 80.859375 44.140625 \n",
       "L 80.859375 51.953125 \n",
       "L 59.375 51.953125 \n",
       "Q 51.953125 51.953125 44.53125 51.5625 \n",
       "L 44.53125 55.859375 \n",
       "Q 42.578125 53.90625 40.625 51.5625 \n",
       "Q 37.109375 53.90625 33.984375 55.859375 \n",
       "Q 41.015625 61.71875 45.109375 67.375 \n",
       "Q 49.21875 73.046875 53.515625 82.8125 \n",
       "Q 57.421875 80.859375 63.28125 79.296875 \n",
       "z\n",
       "M 35.15625 74.609375 \n",
       "Q 33.203125 67.96875 30.859375 60.9375 \n",
       "Q 28.515625 53.90625 26.953125 45.3125 \n",
       "Q 33.203125 37.109375 34.375 31.828125 \n",
       "Q 35.546875 26.5625 34.765625 22.0625 \n",
       "Q 33.984375 17.578125 30.265625 15.8125 \n",
       "Q 26.5625 14.0625 21.09375 12.5 \n",
       "Q 19.921875 16.796875 16.796875 20.3125 \n",
       "Q 22.265625 20.703125 25.1875 21.671875 \n",
       "Q 28.125 22.65625 27.53125 27.53125 \n",
       "Q 26.953125 32.421875 24.609375 36.328125 \n",
       "Q 22.265625 40.234375 19.53125 44.140625 \n",
       "Q 21.09375 49.609375 22.84375 56.046875 \n",
       "Q 24.609375 62.5 25.78125 69.140625 \n",
       "L 14.453125 69.140625 \n",
       "L 14.453125 -8.203125 \n",
       "L 7.03125 -8.203125 \n",
       "Q 7.421875 0.390625 7.421875 7.421875 \n",
       "L 7.421875 58.203125 \n",
       "Q 7.421875 68.359375 7.03125 74.609375 \n",
       "L 35.15625 74.609375 \n",
       "z\n",
       "M 56.25 16.40625 \n",
       "Q 55.859375 13.28125 55.859375 9.375 \n",
       "L 55.859375 3.125 \n",
       "Q 55.859375 -1.953125 61.71875 -1.953125 \n",
       "L 67.1875 -1.953125 \n",
       "Q 71.875 -1.5625 72.65625 0.390625 \n",
       "Q 73.4375 2.34375 73.828125 7.421875 \n",
       "Q 78.125 5.078125 82.03125 4.296875 \n",
       "Q 79.6875 -5.078125 76.75 -6.640625 \n",
       "Q 73.828125 -8.203125 63.671875 -8.390625 \n",
       "Q 53.515625 -8.59375 51.171875 -7.21875 \n",
       "Q 48.828125 -5.859375 48.828125 -1.171875 \n",
       "L 48.828125 5.859375 \n",
       "Q 48.828125 12.109375 48.4375 16.40625 \n",
       "L 56.25 16.40625 \n",
       "z\n",
       "M 46.875 57.8125 \n",
       "Q 52.34375 57.421875 59.375 57.421875 \n",
       "L 65.625 57.421875 \n",
       "Q 67.96875 63.28125 70.3125 67.1875 \n",
       "L 54.296875 67.1875 \n",
       "Q 51.5625 63.671875 46.875 57.8125 \n",
       "z\n",
       "M 44.921875 14.0625 \n",
       "Q 42.96875 11.71875 40.421875 5.859375 \n",
       "Q 37.890625 0 34.765625 -5.46875 \n",
       "Q 31.640625 -3.515625 27.734375 -2.34375 \n",
       "Q 31.640625 3.125 33.390625 7.21875 \n",
       "Q 35.15625 11.328125 37.109375 17.1875 \n",
       "Q 40.625 15.625 44.921875 14.0625 \n",
       "z\n",
       "M 86.71875 19.140625 \n",
       "Q 89.0625 15.234375 91.40625 10.9375 \n",
       "Q 93.75 6.640625 96.484375 1.953125 \n",
       "Q 92.96875 0.78125 89.84375 -1.171875 \n",
       "Q 87.109375 4.6875 84.953125 8.203125 \n",
       "Q 82.8125 11.71875 80.46875 16.015625 \n",
       "Q 83.203125 17.1875 86.71875 19.140625 \n",
       "z\n",
       "M 66.796875 22.265625 \n",
       "Q 67.96875 19.53125 69.328125 16.796875 \n",
       "Q 70.703125 14.0625 71.875 10.15625 \n",
       "Q 68.359375 8.984375 65.234375 7.8125 \n",
       "L 63.28125 13.671875 \n",
       "Q 62.890625 15.625 60.15625 19.921875 \n",
       "Q 64.0625 20.703125 66.796875 22.265625 \n",
       "z\n",
       "\" id=\"SimHei-38544\"/>\n",
       "     <path d=\"M 56.25 19.53125 \n",
       "L 56.25 25.78125 \n",
       "L 41.40625 25.78125 \n",
       "L 41.40625 19.53125 \n",
       "z\n",
       "M 83.203125 56.25 \n",
       "Q 80.859375 60.546875 77.734375 63.28125 \n",
       "Q 81.25 65.234375 83.203125 67.1875 \n",
       "Q 85.546875 64.0625 89.0625 59.765625 \n",
       "Q 85.9375 58.59375 83.203125 56.25 \n",
       "z\n",
       "M 48.4375 31.25 \n",
       "L 48.4375 39.0625 \n",
       "L 41.40625 39.0625 \n",
       "L 41.40625 31.25 \n",
       "z\n",
       "M 48.4375 6.640625 \n",
       "L 48.4375 14.0625 \n",
       "L 41.40625 14.0625 \n",
       "L 41.40625 6.640625 \n",
       "z\n",
       "M 58.203125 62.5 \n",
       "L 58.203125 67.578125 \n",
       "L 40.625 67.578125 \n",
       "L 40.625 60.9375 \n",
       "L 33.59375 60.9375 \n",
       "Q 33.984375 64.453125 33.984375 67.578125 \n",
       "L 18.75 67.578125 \n",
       "Q 13.28125 67.578125 7.421875 66.796875 \n",
       "L 7.421875 73.828125 \n",
       "Q 13.28125 73.4375 18.75 73.046875 \n",
       "L 33.984375 73.046875 \n",
       "Q 33.984375 75.78125 33.59375 81.640625 \n",
       "L 41.015625 81.640625 \n",
       "Q 40.625 75.78125 40.625 73.046875 \n",
       "L 58.203125 73.046875 \n",
       "Q 58.203125 76.171875 57.8125 82.03125 \n",
       "L 65.625 82.03125 \n",
       "Q 64.84375 76.171875 64.84375 73.046875 \n",
       "L 82.03125 73.046875 \n",
       "Q 86.328125 73.046875 93.359375 73.828125 \n",
       "L 93.359375 66.796875 \n",
       "Q 87.5 67.578125 82.03125 67.578125 \n",
       "L 64.84375 67.578125 \n",
       "Q 64.84375 64.84375 65.234375 62.5 \n",
       "z\n",
       "M 64.453125 61.71875 \n",
       "Q 68.75 61.328125 72.265625 61.328125 \n",
       "Q 71.875 57.421875 71.875 55.46875 \n",
       "L 78.90625 55.46875 \n",
       "Q 85.15625 55.46875 92.578125 55.859375 \n",
       "L 92.578125 49.609375 \n",
       "Q 85.546875 50 78.90625 50 \n",
       "L 72.265625 50 \n",
       "Q 73.046875 39.0625 74.40625 31.640625 \n",
       "Q 75.78125 24.21875 76.953125 19.140625 \n",
       "Q 79.296875 23.828125 80.859375 30.265625 \n",
       "Q 82.421875 36.71875 83.203125 43.75 \n",
       "Q 85.9375 42.1875 91.40625 40.234375 \n",
       "Q 89.84375 36.328125 87.296875 27.734375 \n",
       "Q 84.765625 19.140625 80.46875 10.9375 \n",
       "Q 83.984375 4.296875 86.328125 1.5625 \n",
       "Q 88.671875 -1.171875 89.0625 1.359375 \n",
       "Q 89.453125 3.90625 89.84375 8.59375 \n",
       "Q 92.578125 5.859375 96.484375 4.6875 \n",
       "Q 94.140625 -9.375 90.234375 -9.375 \n",
       "Q 86.71875 -9.375 82.8125 -5.078125 \n",
       "Q 78.90625 -0.78125 75.78125 5.078125 \n",
       "Q 71.875 0.390625 67.765625 -2.921875 \n",
       "Q 63.671875 -6.25 58.984375 -9.765625 \n",
       "Q 56.640625 -5.859375 53.90625 -3.515625 \n",
       "Q 57.03125 -1.953125 60.546875 0.390625 \n",
       "Q 56.640625 0.78125 34.765625 0.78125 \n",
       "Q 35.15625 7.03125 35.15625 14.84375 \n",
       "L 35.15625 31.640625 \n",
       "Q 35.15625 38.671875 34.765625 45.3125 \n",
       "Q 55.078125 44.921875 62.109375 45.3125 \n",
       "L 62.109375 39.0625 \n",
       "L 54.6875 39.0625 \n",
       "L 54.6875 31.25 \n",
       "L 62.5 31.25 \n",
       "L 62.5 14.0625 \n",
       "L 54.6875 14.0625 \n",
       "L 54.6875 6.640625 \n",
       "L 62.5 6.640625 \n",
       "L 62.5 1.171875 \n",
       "Q 67.578125 5.46875 72.65625 12.109375 \n",
       "Q 69.140625 22.265625 67.765625 31.640625 \n",
       "Q 66.40625 41.015625 65.625 50 \n",
       "L 30.078125 50 \n",
       "Q 30.078125 25.78125 29.6875 18.546875 \n",
       "Q 29.296875 11.328125 27.53125 4.09375 \n",
       "Q 25.78125 -3.125 21.875 -10.546875 \n",
       "Q 18.359375 -8.59375 14.453125 -7.421875 \n",
       "Q 19.140625 -0.78125 20.890625 6.640625 \n",
       "Q 22.65625 14.0625 23.046875 21.875 \n",
       "L 17.1875 21.875 \n",
       "Q 17.1875 15.625 15.625 9.5625 \n",
       "Q 14.0625 3.515625 9.375 -3.90625 \n",
       "Q 7.03125 -1.953125 3.125 0 \n",
       "Q 6.25 3.515625 8.390625 8.78125 \n",
       "Q 10.546875 14.0625 10.9375 21.875 \n",
       "Q 8.203125 21.875 4.296875 21.484375 \n",
       "L 4.296875 28.515625 \n",
       "Q 10.15625 28.125 16.796875 28.125 \n",
       "L 23.046875 28.125 \n",
       "L 23.046875 37.109375 \n",
       "L 8.984375 37.109375 \n",
       "Q 9.375 42.1875 9.375 47.65625 \n",
       "Q 9.375 53.515625 8.984375 58.203125 \n",
       "L 15.625 58.203125 \n",
       "Q 15.234375 53.515625 15.234375 48.828125 \n",
       "L 15.234375 43.359375 \n",
       "L 23.046875 43.359375 \n",
       "Q 23.046875 51.171875 22.65625 55.46875 \n",
       "L 64.84375 55.46875 \n",
       "Q 64.84375 58.203125 64.453125 61.71875 \n",
       "z\n",
       "\" id=\"SimHei-34255\"/>\n",
       "     <path d=\"M 88.28125 24.609375 \n",
       "Q 87.890625 19.921875 87.890625 8.984375 \n",
       "Q 87.890625 -1.5625 88.28125 -7.03125 \n",
       "L 80.859375 -7.03125 \n",
       "L 80.859375 -0.390625 \n",
       "L 47.265625 -0.390625 \n",
       "L 47.265625 -8.59375 \n",
       "L 39.453125 -8.59375 \n",
       "Q 39.84375 -2.734375 39.84375 7.8125 \n",
       "Q 39.84375 18.75 39.453125 24.609375 \n",
       "L 88.28125 24.609375 \n",
       "z\n",
       "M 33.203125 77.734375 \n",
       "Q 30.859375 75.390625 25.78125 62.109375 \n",
       "L 25.78125 8.59375 \n",
       "Q 25.78125 -3.125 26.171875 -9.765625 \n",
       "L 17.578125 -9.765625 \n",
       "Q 18.75 -2.734375 18.75 8.984375 \n",
       "L 18.75 48.4375 \n",
       "Q 14.0625 39.0625 9.765625 32.8125 \n",
       "Q 7.421875 36.71875 3.90625 39.0625 \n",
       "Q 8.203125 43.75 14.453125 55.65625 \n",
       "Q 20.703125 67.578125 23.828125 80.859375 \n",
       "Q 28.125 79.296875 33.203125 77.734375 \n",
       "z\n",
       "M 80.859375 5.859375 \n",
       "L 80.859375 19.140625 \n",
       "L 47.265625 19.140625 \n",
       "L 47.265625 5.859375 \n",
       "z\n",
       "M 94.921875 60.9375 \n",
       "Q 87.109375 61.328125 64.0625 61.328125 \n",
       "Q 41.015625 61.328125 32.8125 60.9375 \n",
       "L 32.8125 67.578125 \n",
       "L 94.921875 67.578125 \n",
       "z\n",
       "M 89.0625 46.875 \n",
       "Q 82.421875 47.265625 64.84375 47.265625 \n",
       "Q 47.265625 47.265625 38.671875 46.875 \n",
       "L 38.671875 53.515625 \n",
       "Q 46.09375 53.125 64.0625 53.125 \n",
       "Q 82.421875 53.125 89.0625 53.515625 \n",
       "z\n",
       "M 89.0625 33.203125 \n",
       "Q 83.59375 33.59375 65.234375 33.59375 \n",
       "Q 47.265625 33.59375 38.671875 33.203125 \n",
       "L 38.671875 39.84375 \n",
       "Q 46.875 39.453125 65.234375 39.453125 \n",
       "Q 83.984375 39.453125 89.0625 39.84375 \n",
       "z\n",
       "M 62.890625 81.25 \n",
       "Q 64.0625 78.90625 65.234375 76.171875 \n",
       "Q 66.40625 73.4375 67.578125 70.3125 \n",
       "Q 64.0625 69.140625 60.546875 68.359375 \n",
       "Q 57.8125 76.5625 55.859375 78.515625 \n",
       "Q 59.765625 80.078125 62.890625 81.25 \n",
       "z\n",
       "\" id=\"SimHei-20449\"/>\n",
       "     <path d=\"M 48.4375 79.6875 \n",
       "Q 44.53125 73.828125 43.359375 70.703125 \n",
       "L 82.8125 70.703125 \n",
       "Q 82.421875 62.890625 82.421875 49.609375 \n",
       "Q 82.421875 36.71875 82.8125 27.734375 \n",
       "L 17.96875 27.734375 \n",
       "Q 18.359375 36.71875 18.359375 49.609375 \n",
       "Q 18.359375 62.890625 17.96875 70.703125 \n",
       "L 36.328125 70.703125 \n",
       "Q 37.5 73.828125 38.671875 82.03125 \n",
       "Q 42.96875 80.859375 48.4375 79.6875 \n",
       "z\n",
       "M 36.71875 21.09375 \n",
       "Q 36.328125 10.546875 36.328125 5.859375 \n",
       "Q 36.328125 1.171875 37.296875 0.1875 \n",
       "Q 38.28125 -0.78125 43.359375 -0.78125 \n",
       "L 62.890625 -0.78125 \n",
       "Q 65.625 -0.78125 66.59375 0.390625 \n",
       "Q 67.578125 1.5625 67.96875 8.59375 \n",
       "Q 71.09375 6.640625 76.171875 5.46875 \n",
       "Q 74.21875 -2.34375 72.65625 -4.296875 \n",
       "Q 71.09375 -6.25 65.625 -6.640625 \n",
       "L 36.71875 -6.640625 \n",
       "Q 30.46875 -6.25 29.484375 -3.3125 \n",
       "Q 28.515625 -0.390625 28.703125 5.078125 \n",
       "Q 28.90625 10.546875 28.515625 21.09375 \n",
       "L 36.71875 21.09375 \n",
       "z\n",
       "M 75 58.203125 \n",
       "L 75 65.234375 \n",
       "L 25.78125 65.234375 \n",
       "L 25.78125 58.203125 \n",
       "z\n",
       "M 75 33.203125 \n",
       "L 75 40.234375 \n",
       "L 25.78125 40.234375 \n",
       "L 25.78125 33.203125 \n",
       "z\n",
       "M 75 45.703125 \n",
       "L 75 52.734375 \n",
       "L 25.78125 52.734375 \n",
       "L 25.78125 45.703125 \n",
       "z\n",
       "M 81.640625 22.265625 \n",
       "Q 88.28125 13.671875 95.703125 5.078125 \n",
       "Q 91.796875 2.34375 89.0625 -0.390625 \n",
       "Q 81.640625 10.9375 75.390625 17.1875 \n",
       "Q 78.515625 19.140625 81.640625 22.265625 \n",
       "z\n",
       "M 19.921875 16.796875 \n",
       "Q 15.234375 2.34375 12.5 -3.515625 \n",
       "Q 8.984375 -1.953125 4.6875 -0.78125 \n",
       "Q 9.375 5.859375 12.5 18.75 \n",
       "Q 15.625 17.578125 19.921875 16.796875 \n",
       "z\n",
       "M 52.34375 23.4375 \n",
       "Q 56.640625 17.1875 59.375 11.71875 \n",
       "Q 56.640625 10.546875 52.34375 7.8125 \n",
       "Q 49.609375 14.453125 45.703125 19.53125 \n",
       "Q 49.21875 21.484375 52.34375 23.4375 \n",
       "z\n",
       "\" id=\"SimHei-24687\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(211.909091 17.04375)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-23545\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-35282\"/>\n",
       "     <use x=\"200\" xlink:href=\"#SimHei-32447\"/>\n",
       "     <use x=\"300\" xlink:href=\"#SimHei-20998\"/>\n",
       "     <use x=\"400\" xlink:href=\"#SimHei-22359\"/>\n",
       "     <use x=\"500\" xlink:href=\"#SimHei-38544\"/>\n",
       "     <use x=\"600\" xlink:href=\"#SimHei-34255\"/>\n",
       "     <use x=\"700\" xlink:href=\"#SimHei-20449\"/>\n",
       "     <use x=\"800\" xlink:href=\"#SimHei-24687\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"peeff1f486f\">\n",
       "   <rect height=\"152.181818\" width=\"152.181818\" x=\"7.2\" y=\"23.04375\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pd7b9cea886\">\n",
       "   <rect height=\"152.181818\" width=\"152.181818\" x=\"189.818182\" y=\"23.04375\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方差： 0.0055999755859375\n",
      "峰值信噪比： 70.6489422723952\n"
     ]
    }
   ],
   "source": [
    "plt.subplot(1, 2, 1), plt.imshow(bin_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"原图\")\n",
    "plt.subplot(1, 2, 2), plt.imshow(t_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"对角线分块隐藏信息\")\n",
    "plt.show()\n",
    "myipf.calcMSEPSNR(bin_img, t_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def insertMark3(src, data):\n",
    "    vec_image = src.flatten()\n",
    "    running_len_table = calRunningLength(src)\n",
    "    length, k, i, pre_sum = vec_image.shape[0]-1, 0, 0, 0\n",
    "    while k < length:\n",
    "        if k > 1:\n",
    "            pre_sum += running_len_table[k-1] + running_len_table[k-2]\n",
    "        if running_len_table[k] > 1 or running_len_table[k+1] > 1:\n",
    "            if running_len_table[k] >= running_len_table[k+1]:\n",
    "                modify_point = pre_sum + running_len_table[k]-1\n",
    "            else:\n",
    "                modify_point = pre_sum + running_len_table[k]\n",
    "            if data[i+2] == \"1\":\n",
    "                if running_len_table[k] % 2 == 0:\n",
    "                    vec_image[modify_point] = (vec_image[modify_point]+1) % 2\n",
    "            else:\n",
    "                if running_len_table[k] % 2 == 1:\n",
    "                    vec_image[modify_point] = (vec_image[modify_point]+1) % 2\n",
    "            i += 1\n",
    "        k += 2;\n",
    "        if i == len(data)-2:\n",
    "            break\n",
    "\n",
    "    return vec_image.reshape(src.shape[0], src.shape[1])\n",
    "\n",
    "def getMark3(src, length):\n",
    "    vec_image = src.flatten()\n",
    "    running_len_table = calRunningLength(src)\n",
    "    k, i = 0, 0\n",
    "    data = \"0b\"\n",
    "    while i < length:\n",
    "        if running_len_table[k] > 1 or running_len_table[k+1] > 1:\n",
    "            if running_len_table[k] % 2 == 1:\n",
    "                data += \"1\"\n",
    "            else:\n",
    "                data += \"0\"\n",
    "            i += 1;\n",
    "        k += 2\n",
    "    return data\n",
    "    \n",
    "def calRunningLength(src):\n",
    "    vec_image = src.flatten()\n",
    "    running_len_table, length, k = [], vec_image.shape[0], 0\n",
    "    while k < length:\n",
    "        pre_pixel = vec_image[k]\n",
    "        count = 1\n",
    "        while k+1 < length and vec_image[k+1] == pre_pixel:\n",
    "            count += 1\n",
    "            k     += 1\n",
    "        running_len_table.append(count)\n",
    "        k += 1\n",
    "\n",
    "    return running_len_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "tt_img = insertMark3(bin_img, bin(21553324423))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 结果验证"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "getMark2(t_img, 35) == bin(21553324423)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"128.714338pt\" version=\"1.1\" viewBox=\"0 0 349.2 128.714338\" width=\"349.2pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 128.714338 \n",
       "L 349.2 128.714338 \n",
       "L 349.2 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g clip-path=\"url(#p1988467c4a)\">\n",
       "    <image height=\"99\" id=\"image025e42d1e5\" transform=\"scale(1 -1)translate(0 -99)\" width=\"99\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.514338\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- 原图 -->\n",
       "    <defs>\n",
       "     <path d=\"M 60.15625 66.796875 \n",
       "Q 57.421875 62.890625 56.25 57.8125 \n",
       "L 85.15625 57.8125 \n",
       "Q 84.765625 54.296875 84.765625 46.875 \n",
       "L 84.765625 34.765625 \n",
       "Q 84.765625 28.515625 85.15625 23.046875 \n",
       "L 63.28125 23.046875 \n",
       "L 63.28125 -0.78125 \n",
       "Q 63.28125 -6.25 59.765625 -7.609375 \n",
       "Q 56.25 -8.984375 48.4375 -9.765625 \n",
       "Q 47.65625 -5.078125 45.703125 -0.78125 \n",
       "Q 53.125 -1.171875 54.296875 -0.578125 \n",
       "Q 55.46875 0 55.46875 2.734375 \n",
       "L 55.46875 23.046875 \n",
       "L 33.203125 23.046875 \n",
       "Q 33.59375 27.734375 33.59375 34.375 \n",
       "L 33.59375 47.265625 \n",
       "Q 33.59375 53.515625 33.203125 57.8125 \n",
       "L 49.21875 57.8125 \n",
       "Q 51.5625 66.40625 51.5625 69.140625 \n",
       "L 60.15625 66.796875 \n",
       "z\n",
       "M 4.296875 -5.078125 \n",
       "Q 11.328125 4.296875 13.671875 16.203125 \n",
       "Q 16.015625 28.125 16.015625 35.9375 \n",
       "L 16.015625 64.453125 \n",
       "Q 16.015625 72.65625 15.625 76.5625 \n",
       "L 78.515625 76.5625 \n",
       "Q 87.109375 76.5625 90.625 76.953125 \n",
       "L 90.625 69.921875 \n",
       "Q 87.5 70.3125 78.515625 70.3125 \n",
       "L 23.828125 70.3125 \n",
       "L 23.828125 37.109375 \n",
       "Q 23.4375 25.78125 22.0625 17.375 \n",
       "Q 20.703125 8.984375 17.765625 1.953125 \n",
       "Q 14.84375 -5.078125 12.5 -8.984375 \n",
       "Q 8.59375 -6.25 4.296875 -5.078125 \n",
       "z\n",
       "M 76.953125 43.359375 \n",
       "L 76.953125 51.953125 \n",
       "L 41.015625 51.953125 \n",
       "L 41.015625 43.359375 \n",
       "z\n",
       "M 76.953125 29.296875 \n",
       "L 76.953125 37.5 \n",
       "L 41.015625 37.5 \n",
       "L 41.015625 29.296875 \n",
       "z\n",
       "M 23.046875 -0.78125 \n",
       "Q 28.125 2.34375 32.609375 7.03125 \n",
       "Q 37.109375 11.71875 40.234375 17.1875 \n",
       "Q 43.75 13.671875 46.484375 11.71875 \n",
       "Q 35.9375 -0.78125 28.515625 -6.25 \n",
       "Q 26.171875 -3.515625 23.046875 -0.78125 \n",
       "z\n",
       "M 75.390625 16.796875 \n",
       "Q 89.0625 4.6875 92.578125 0.390625 \n",
       "Q 89.84375 -1.953125 87.109375 -5.078125 \n",
       "Q 82.03125 1.171875 70.3125 11.328125 \n",
       "Q 73.046875 14.453125 75.390625 16.796875 \n",
       "z\n",
       "\" id=\"SimHei-21407\"/>\n",
       "     <path d=\"M 90.625 77.734375 \n",
       "Q 90.234375 67.96875 90.234375 56.25 \n",
       "L 90.234375 14.453125 \n",
       "Q 90.234375 2.34375 90.625 -9.375 \n",
       "L 82.8125 -9.375 \n",
       "L 82.8125 -4.296875 \n",
       "L 17.578125 -4.296875 \n",
       "L 17.578125 -10.15625 \n",
       "L 9.765625 -10.15625 \n",
       "Q 10.15625 1.953125 10.15625 14.84375 \n",
       "L 10.15625 56.25 \n",
       "Q 10.15625 67.578125 9.765625 77.734375 \n",
       "L 90.625 77.734375 \n",
       "z\n",
       "M 82.8125 2.34375 \n",
       "L 82.8125 71.484375 \n",
       "L 17.578125 71.484375 \n",
       "L 17.578125 2.34375 \n",
       "z\n",
       "M 50.390625 66.40625 \n",
       "Q 48.046875 64.0625 46.09375 61.328125 \n",
       "L 72.265625 61.328125 \n",
       "Q 70.703125 57.8125 67.1875 52.734375 \n",
       "Q 63.671875 47.65625 56.25 40.625 \n",
       "Q 67.96875 34.765625 79.296875 33.59375 \n",
       "Q 76.5625 30.078125 74.609375 26.171875 \n",
       "Q 60.15625 30.46875 50.390625 36.71875 \n",
       "Q 39.0625 29.296875 26.171875 25.78125 \n",
       "Q 25 29.296875 21.875 32.421875 \n",
       "Q 34.375 34.375 44.921875 40.625 \n",
       "Q 39.453125 45.703125 37.109375 49.21875 \n",
       "Q 33.59375 45.3125 29.6875 41.40625 \n",
       "Q 26.953125 44.53125 23.828125 46.09375 \n",
       "Q 30.46875 51.5625 35.15625 58.390625 \n",
       "Q 39.84375 65.234375 41.796875 69.921875 \n",
       "Q 45.703125 67.96875 50.390625 66.40625 \n",
       "z\n",
       "M 38.28125 19.921875 \n",
       "Q 55.46875 14.84375 64.0625 11.328125 \n",
       "Q 62.109375 8.203125 60.15625 4.6875 \n",
       "Q 44.140625 11.328125 35.546875 13.28125 \n",
       "Q 37.109375 16.40625 38.28125 19.921875 \n",
       "z\n",
       "M 45.703125 32.03125 \n",
       "Q 58.984375 26.5625 63.671875 25 \n",
       "Q 61.71875 21.875 60.15625 17.96875 \n",
       "Q 46.875 24.21875 42.1875 25.78125 \n",
       "Q 44.140625 28.515625 45.703125 32.03125 \n",
       "z\n",
       "M 41.015625 53.90625 \n",
       "Q 46.875 47.265625 51.171875 44.53125 \n",
       "Q 56.25 48.4375 60.546875 55.078125 \n",
       "L 41.796875 55.078125 \n",
       "L 41.015625 53.90625 \n",
       "z\n",
       "\" id=\"SimHei-22270\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(44.435294 17.04375)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-21407\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-22270\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g clip-path=\"url(#p567c1a9d15)\">\n",
       "    <image height=\"99\" id=\"image7c3467fda6\" transform=\"scale(1 -1)translate(0 -99)\" width=\"99\" x=\"125.364706\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAAGMAAABjCAYAAACPO76VAAAABHNCSVQICAgIfAhkiAAABr5JREFUeJztXdluYyEMhaj//8t3XkrkujZ4OQZSzZFGkzYXYzDeSdpba0/7xvO8X6rovS+fofR67+//Z8/w390GiX/K++DZsz8cr/BII2abrQkps6CdoHz23tN8lwtDwkpb6HM3YBcfb2FUmYboQsa4WwSyAmL/XhFC1udRvgBhAipBzW4Gr4ggsqed0rLM90lY8fs8j/pMyGdkN8gbeSAilSgic0YPWW/foS19czhYFHOcCasDp2Po3Du1xctjZOyAWzNmauahMRP4pyFjmihCZiqqHfyEWwWCTKxQGBs845+/t1rrF4QzI+gm8uz1hg3mQGmvdW1Hkj4OC7M3agcaR4TByyFedb4Jq0PhWctxzaCCuenUe6IoFL9QYVjja435G4QQBQ1KohUDaNLnsf30Zyvj0tgbQPdDirKspgpuplahXtYf8IisAqhyjxehQmGGWUQGn+UDDUsIXJb0ZSBpx03RU7QWxRtNEfyq2mZPG88HZvRpjSrqN7TfReCl49X01aH7oRmZohh3WFLJQ3JsmSwXWeOKRHizUDwVTXkGW9ulUi1KUueMD9pZrrCMyySBX1Uqzu0o1xbpmd3wHkAUvxod0YEjIgP+3IlehIZoVKdd1+H/LJCe+1W1tZa0Pbc7uG1Hlj20DfI8b0HFIeL7EC6hexdVmR/coG0ZDP7DecZqA4YmaFrw6Rs4Q3RtkKRPC3W5w64QSNU1I68PQCDV6YtcKuCvK/Fp2vhLMyKZ8GzMLMuuupRAA4doFTVTCo8iXUL3XCjgr6MZtMWEIDtwuxAyU9YNlBI/jR4CWi5D+d2V70Tovy+xeQhpmbWFOUk4yGKbF1VzR4Seiqas2jGgLVyr8ErYXT7JFDG9SAkja5elwiGqFGPFTb6jtO06Nttq9io0QwsebukSUojCyNRv+OZ7m0djDAKr5tXu0HUFt2bwGH71jAbpPUvkFRGUlmt4M2xUpVdD2EytGiurKEvbeORplYIHiX6V3/DSDX0kYPwv9btnIayFLqeHxu56k6dkFDZTs4sF3pMulUnQyRnSD1UhrBn0NZd+RCtOF/W0yjMKFiHC8oyZM48stEI7LHNVwGoaw2ZqTBIxQ973x1zWZ8dzVW3dKlqvjEPj3TyNlhbGWub2mrzZeBSyfXRtPCwDj2ya5fRyWlp0wmnRPOKmxK41fQ1f1C5nkxqtIpvZDMlv0EzfmsvMfn9CYHR/xmvxRmHWYUqnGUlvYJV4oua3zp2h1XtvX9WnArERUkQ2s7+rg8XHnjRjlL/XLgeXFcqMz1ngsBp3E7Z9PiPS67ZAKv555szwhMxPeu97P5TfWs5ZSsGGVAz0bnCk/cvHZvE8z95PLlnK7x46/PXuIqDEQwahz/StINWq0DF/pB/hpW/lFcXDq7W6aEKqxtLXlU59F5A8lPiMVa85Kgivc/YAnZhGUGKmOM1ZjuBte9IIhv58WksQJrjMTGm5RqSjd6I7dwLHvsiFn+7ZBlhPfjZkbs1/jzg7N0WZmdLAc4Xo4lf0M+OjdbqsqSqNplqbFw25QBBOObMhmtn0tAQy/B/7+m0p4qLCieYR0Syaz3OiJ79dGNoiZ+UNxDxWUM3KmKwIemu+jwR4Fqm1W8d7FrWmTaRIDQlVduG0KqrB24XBaUQjFo8GoTP9qtL89qrtwFjQTDCaNlgzcVSWrvEwa+tG5t0uDOuCxvvSa+0Zz3sRIKM+CceTPhrJnC5pWGGpHETWcqSfIf18qhdxE6AflpnBem3mL8G7ttBXHCGh+Y2/IiTPOkrNlKe4dyLjRQDJ5xafYc0DbtEGNB/W+1lbfIY1y5Zyjx3Qkrrd+3D8i+k5TpgndIg6ozOjd4UD5ydxp4ZUNq0kOrNEt8xMWa/m8OSPV28rBeKhjQzNtcNephmok33Kj0iQ+Mj0WzitK6IpbqIGKs3lSeFuN1Mclo3V5kULJbM+qXQf4U8qNm69hb5CdSncyoeGVT8/y4v7b7tWojobRwoCBbrm7Vd1VuBagI7zKxFut36v+XieIeGGyInCe3cqim0OnGL3pbkbzRNH7731h8xmiQ5QgrIkhOiLBFXzZOcfOKIZszksLc0MfSTQc/wQxilfwVuu2btOu3wODzSyUWDo72dkIJmnT4qYNCD2bXlVJ5NlzuhxWO5ReejdAC9v5ntT6LtCXENOXliouAcV4XspjJORhjcaigrudF41cF2n7y8geiiO3bVF4ma/4cF/zQAjczB+/TnRGbHKEzgrT1vHfDp+lENMAzaaBEvJJDseKdDs3lxtprIh5ycJorXLhTHDrl75LjzP0/4BzEW6X9LQipMAAAAASUVORK5CYII=\" y=\"-22.514338\"/>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- 对角线分块隐藏信息 -->\n",
       "    <defs>\n",
       "     <path d=\"M 8.203125 66.40625 \n",
       "Q 14.0625 66.015625 21.875 66.015625 \n",
       "L 44.140625 66.015625 \n",
       "Q 40.234375 41.015625 34.375 27.34375 \n",
       "Q 44.140625 13.671875 48.828125 6.25 \n",
       "Q 46.09375 4.296875 42.578125 1.171875 \n",
       "Q 34.375 15.234375 30.46875 20.3125 \n",
       "Q 25.78125 12.109375 21.09375 6.640625 \n",
       "Q 16.40625 1.171875 9.375 -5.46875 \n",
       "Q 6.640625 -1.953125 3.125 -0.390625 \n",
       "Q 9.765625 4.296875 15.234375 10.546875 \n",
       "Q 20.703125 16.796875 25.78125 26.5625 \n",
       "Q 16.40625 37.890625 8.59375 45.3125 \n",
       "Q 10.9375 47.265625 14.0625 50.390625 \n",
       "Q 25.390625 37.890625 29.296875 33.59375 \n",
       "Q 34.375 47.65625 35.9375 59.765625 \n",
       "L 21.875 59.765625 \n",
       "Q 14.0625 59.765625 8.203125 59.375 \n",
       "z\n",
       "M 45.703125 57.8125 \n",
       "Q 55.078125 57.421875 58.59375 57.421875 \n",
       "L 75.390625 57.421875 \n",
       "L 75.390625 69.140625 \n",
       "Q 75.390625 74.21875 74.609375 80.078125 \n",
       "L 83.59375 80.078125 \n",
       "Q 83.203125 75.390625 83.203125 68.359375 \n",
       "L 83.203125 57.421875 \n",
       "Q 87.109375 57.421875 96.09375 57.8125 \n",
       "L 96.09375 50.78125 \n",
       "Q 87.109375 51.171875 83.203125 51.171875 \n",
       "L 83.203125 1.953125 \n",
       "Q 83.59375 -5.46875 78.3125 -7.421875 \n",
       "Q 73.046875 -9.375 66.40625 -10.15625 \n",
       "Q 65.234375 -5.46875 62.890625 -1.5625 \n",
       "Q 71.484375 -1.5625 73.625 -0.578125 \n",
       "Q 75.78125 0.390625 75.390625 5.078125 \n",
       "L 75.390625 51.171875 \n",
       "L 58.984375 51.171875 \n",
       "Q 55.46875 51.171875 45.703125 50.390625 \n",
       "z\n",
       "M 53.90625 42.578125 \n",
       "Q 60.546875 30.859375 65.234375 20.703125 \n",
       "Q 60.15625 18.75 57.8125 16.796875 \n",
       "Q 54.296875 27.34375 47.65625 38.671875 \n",
       "Q 50.390625 39.84375 53.90625 42.578125 \n",
       "z\n",
       "\" id=\"SimHei-23545\"/>\n",
       "     <path d=\"M 48.828125 14.0625 \n",
       "L 25.390625 14.0625 \n",
       "Q 23.046875 1.953125 13.671875 -9.765625 \n",
       "Q 10.15625 -6.25 6.25 -4.6875 \n",
       "Q 12.109375 0.78125 15.234375 7.421875 \n",
       "Q 18.359375 14.0625 19.53125 24.609375 \n",
       "Q 20.703125 35.15625 20.3125 51.953125 \n",
       "Q 17.1875 48.828125 12.890625 45.703125 \n",
       "Q 10.9375 48.828125 6.640625 51.953125 \n",
       "Q 10.15625 53.515625 16.796875 58.390625 \n",
       "Q 23.4375 63.28125 28.90625 70.5 \n",
       "Q 34.375 77.734375 36.71875 82.421875 \n",
       "Q 39.84375 80.078125 44.140625 78.125 \n",
       "Q 42.1875 76.171875 37.890625 70.703125 \n",
       "L 75.390625 70.703125 \n",
       "Q 73.4375 68.359375 63.28125 54.296875 \n",
       "L 87.5 54.296875 \n",
       "Q 87.109375 45.703125 87.109375 39.0625 \n",
       "L 87.109375 0.390625 \n",
       "Q 87.109375 -5.46875 83.203125 -7.03125 \n",
       "Q 79.296875 -8.59375 71.484375 -9.375 \n",
       "Q 70.3125 -5.078125 67.578125 -0.78125 \n",
       "Q 75.390625 -0.78125 77.734375 0 \n",
       "Q 80.078125 0.78125 79.6875 5.078125 \n",
       "L 79.6875 14.0625 \n",
       "L 56.25 14.0625 \n",
       "L 56.25 6.25 \n",
       "Q 56.25 0.390625 56.640625 -7.8125 \n",
       "L 48.046875 -7.8125 \n",
       "Q 48.828125 0 48.828125 7.8125 \n",
       "z\n",
       "M 55.078125 54.296875 \n",
       "L 62.109375 64.453125 \n",
       "L 33.59375 64.453125 \n",
       "Q 28.515625 58.984375 23.046875 54.296875 \n",
       "z\n",
       "M 79.6875 20.3125 \n",
       "L 79.6875 31.25 \n",
       "L 56.25 31.25 \n",
       "L 56.25 20.3125 \n",
       "z\n",
       "M 79.6875 37.5 \n",
       "L 79.6875 47.65625 \n",
       "L 56.25 47.65625 \n",
       "L 56.25 37.5 \n",
       "z\n",
       "M 48.828125 20.3125 \n",
       "L 48.828125 31.25 \n",
       "L 27.34375 31.25 \n",
       "Q 27.34375 25.390625 26.5625 20.3125 \n",
       "z\n",
       "M 48.828125 37.5 \n",
       "L 48.828125 47.65625 \n",
       "L 27.734375 47.65625 \n",
       "L 27.734375 37.5 \n",
       "z\n",
       "\" id=\"SimHei-35282\"/>\n",
       "     <path d=\"M 53.90625 67.1875 \n",
       "Q 53.90625 73.046875 52.734375 80.078125 \n",
       "Q 57.8125 79.6875 63.28125 78.90625 \n",
       "Q 62.109375 76.5625 61.71875 71.28125 \n",
       "Q 61.328125 66.015625 61.71875 56.25 \n",
       "L 75 58.59375 \n",
       "Q 81.640625 60.15625 88.28125 62.109375 \n",
       "L 89.84375 54.6875 \n",
       "Q 83.203125 53.90625 76.171875 52.734375 \n",
       "L 62.109375 50 \n",
       "Q 62.109375 43.75 62.890625 39.0625 \n",
       "L 78.125 41.796875 \n",
       "Q 85.9375 43.359375 92.96875 45.703125 \n",
       "L 94.140625 38.28125 \n",
       "Q 87.109375 37.109375 79.296875 35.546875 \n",
       "L 64.0625 32.8125 \n",
       "Q 64.84375 25 67.96875 18.359375 \n",
       "Q 71.484375 21.09375 74.796875 24.609375 \n",
       "Q 78.125 28.125 80.859375 32.421875 \n",
       "Q 86.71875 27.734375 89.84375 26.171875 \n",
       "Q 84.765625 23.828125 81.828125 20.890625 \n",
       "Q 78.90625 17.96875 72.265625 11.71875 \n",
       "Q 76.953125 3.90625 80.65625 1.75 \n",
       "Q 84.375 -0.390625 85.9375 1.5625 \n",
       "Q 87.5 3.515625 88.671875 9.765625 \n",
       "Q 92.1875 7.03125 96.875 5.46875 \n",
       "Q 90.234375 -11.71875 82.421875 -8.390625 \n",
       "Q 74.609375 -5.078125 66.015625 7.03125 \n",
       "Q 60.546875 2.734375 55.265625 -0.96875 \n",
       "Q 50 -4.6875 42.1875 -8.59375 \n",
       "Q 40.234375 -4.6875 36.328125 -1.5625 \n",
       "Q 44.140625 1.171875 49.609375 4.296875 \n",
       "Q 55.078125 7.421875 62.109375 13.28125 \n",
       "Q 58.59375 21.09375 57.03125 31.640625 \n",
       "Q 45.3125 29.6875 40.625 28.125 \n",
       "L 39.453125 35.546875 \n",
       "Q 44.140625 35.546875 55.46875 37.890625 \n",
       "Q 54.6875 44.140625 54.6875 48.4375 \n",
       "Q 44.140625 46.09375 40.234375 44.921875 \n",
       "L 38.671875 52.34375 \n",
       "Q 42.578125 52.34375 53.90625 54.6875 \n",
       "z\n",
       "M 30.46875 76.171875 \n",
       "Q 26.5625 72.65625 22.84375 66.203125 \n",
       "Q 19.140625 59.765625 12.890625 50.390625 \n",
       "Q 22.265625 50.78125 25.78125 50.78125 \n",
       "Q 29.296875 56.640625 32.03125 63.671875 \n",
       "Q 35.9375 60.9375 40.625 59.375 \n",
       "Q 36.71875 55.46875 32.609375 48.828125 \n",
       "Q 28.515625 42.1875 18.359375 26.171875 \n",
       "Q 28.90625 26.953125 37.109375 27.734375 \n",
       "Q 35.9375 23.828125 35.9375 21.09375 \n",
       "Q 33.203125 21.09375 23.828125 20.109375 \n",
       "Q 14.453125 19.140625 8.59375 17.578125 \n",
       "Q 8.203125 21.484375 6.25 25.78125 \n",
       "Q 10.9375 26.953125 14.84375 32.03125 \n",
       "Q 18.75 37.109375 23.046875 44.921875 \n",
       "Q 10.15625 44.140625 6.640625 41.796875 \n",
       "Q 5.46875 46.09375 3.125 50.390625 \n",
       "Q 8.203125 53.90625 12.890625 61.90625 \n",
       "Q 17.578125 69.921875 21.484375 80.46875 \n",
       "Q 25.390625 77.734375 30.46875 76.171875 \n",
       "z\n",
       "M 40.234375 13.671875 \n",
       "Q 39.84375 9.375 40.234375 7.03125 \n",
       "Q 30.46875 5.078125 22.65625 3.125 \n",
       "Q 14.84375 1.171875 8.203125 -1.171875 \n",
       "Q 7.03125 3.125 3.90625 7.421875 \n",
       "Q 14.84375 8.59375 20.703125 9.5625 \n",
       "Q 26.5625 10.546875 40.234375 13.671875 \n",
       "z\n",
       "M 75.78125 62.890625 \n",
       "Q 73.046875 67.1875 68.359375 73.046875 \n",
       "L 74.609375 76.171875 \n",
       "Q 76.171875 74.21875 82.421875 66.796875 \n",
       "Q 78.515625 65.234375 75.78125 62.890625 \n",
       "z\n",
       "\" id=\"SimHei-32447\"/>\n",
       "     <path d=\"M 15.625 -10.15625 \n",
       "Q 12.890625 -5.859375 8.984375 -3.515625 \n",
       "Q 15.234375 -1.171875 20.3125 2.140625 \n",
       "Q 25.390625 5.46875 29.296875 10.34375 \n",
       "Q 33.203125 15.234375 35.15625 21.09375 \n",
       "Q 37.109375 26.953125 37.890625 35.546875 \n",
       "Q 28.90625 35.546875 23.4375 35.15625 \n",
       "L 23.4375 43.359375 \n",
       "Q 29.6875 42.96875 39.453125 42.96875 \n",
       "L 78.515625 42.96875 \n",
       "Q 77.734375 37.109375 77.34375 32.8125 \n",
       "L 74.21875 3.90625 \n",
       "Q 73.4375 -3.125 67.96875 -5.46875 \n",
       "Q 62.5 -7.8125 55.859375 -8.203125 \n",
       "Q 55.46875 -4.296875 51.953125 0.78125 \n",
       "Q 60.15625 0.390625 63.078125 1.359375 \n",
       "Q 66.015625 2.34375 66.796875 8.203125 \n",
       "L 69.53125 35.546875 \n",
       "L 46.09375 35.546875 \n",
       "Q 44.921875 25.390625 42.765625 18.546875 \n",
       "Q 40.625 11.71875 36.71875 6.640625 \n",
       "Q 32.8125 1.5625 27.34375 -2.734375 \n",
       "Q 21.875 -7.03125 15.625 -10.15625 \n",
       "z\n",
       "M 61.71875 80.859375 \n",
       "Q 64.453125 72.65625 72.84375 62.109375 \n",
       "Q 81.25 51.5625 96.484375 43.75 \n",
       "Q 93.359375 41.015625 90.234375 35.546875 \n",
       "Q 83.203125 40.625 77.921875 45.109375 \n",
       "Q 72.65625 49.609375 69.140625 53.515625 \n",
       "Q 65.625 57.421875 61.328125 64.640625 \n",
       "Q 57.03125 71.875 54.296875 78.125 \n",
       "Q 58.59375 79.296875 61.71875 80.859375 \n",
       "z\n",
       "M 42.1875 75.390625 \n",
       "Q 38.671875 69.140625 36.328125 64.453125 \n",
       "Q 33.984375 59.765625 31.640625 56.046875 \n",
       "Q 29.296875 52.34375 24.609375 46.09375 \n",
       "Q 19.921875 39.84375 13.28125 33.203125 \n",
       "Q 9.765625 36.71875 6.25 38.671875 \n",
       "Q 14.0625 45.703125 18.546875 51.5625 \n",
       "Q 23.046875 57.421875 27.140625 64.25 \n",
       "Q 31.25 71.09375 34.375 79.296875 \n",
       "Q 37.5 76.953125 42.1875 75.390625 \n",
       "z\n",
       "\" id=\"SimHei-20998\"/>\n",
       "     <path d=\"M 55.46875 63.28125 \n",
       "Q 55.46875 75 55.078125 80.859375 \n",
       "Q 57.8125 80.078125 63.671875 79.296875 \n",
       "Q 63.28125 76.5625 63.078125 72.65625 \n",
       "Q 62.890625 68.75 62.890625 63.28125 \n",
       "L 84.765625 63.28125 \n",
       "Q 84.375 57.421875 84.375 50.390625 \n",
       "L 84.375 34.375 \n",
       "Q 91.015625 34.375 95.3125 34.765625 \n",
       "L 95.3125 28.125 \n",
       "Q 89.453125 28.515625 84.765625 28.515625 \n",
       "L 66.40625 28.515625 \n",
       "Q 69.140625 22.265625 72.84375 16.59375 \n",
       "Q 76.5625 10.9375 82.421875 5.46875 \n",
       "Q 88.28125 0 96.484375 -3.515625 \n",
       "Q 93.359375 -5.859375 90.234375 -10.15625 \n",
       "Q 86.71875 -8.203125 81.046875 -3.515625 \n",
       "Q 75.390625 1.171875 70.3125 8 \n",
       "Q 65.234375 14.84375 61.328125 23.4375 \n",
       "Q 57.8125 13.28125 53.125 7.21875 \n",
       "Q 48.4375 1.171875 44.328125 -2.53125 \n",
       "Q 40.234375 -6.25 33.984375 -10.546875 \n",
       "Q 30.859375 -7.03125 28.125 -4.6875 \n",
       "Q 32.8125 -1.953125 37.890625 1.953125 \n",
       "Q 42.96875 5.859375 46.671875 10.34375 \n",
       "Q 50.390625 14.84375 52.34375 19.71875 \n",
       "Q 54.296875 24.609375 54.6875 28.515625 \n",
       "L 45.3125 28.515625 \n",
       "Q 39.0625 28.515625 32.8125 28.125 \n",
       "L 32.8125 34.765625 \n",
       "Q 39.0625 34.375 45.3125 34.375 \n",
       "L 55.46875 34.375 \n",
       "L 55.46875 57.421875 \n",
       "L 51.171875 57.421875 \n",
       "Q 45.3125 57.421875 39.0625 56.640625 \n",
       "L 39.0625 63.671875 \n",
       "Q 44.921875 63.28125 51.171875 63.28125 \n",
       "z\n",
       "M 17.578125 54.6875 \n",
       "L 17.578125 66.40625 \n",
       "Q 17.578125 72.65625 17.1875 78.90625 \n",
       "L 25 78.90625 \n",
       "Q 24.609375 73.046875 24.609375 66.40625 \n",
       "L 24.609375 54.6875 \n",
       "L 27.734375 54.6875 \n",
       "Q 30.46875 54.6875 36.71875 55.078125 \n",
       "L 36.71875 48.4375 \n",
       "Q 30.46875 48.828125 27.734375 48.828125 \n",
       "L 24.609375 48.828125 \n",
       "L 24.609375 19.140625 \n",
       "L 38.671875 23.828125 \n",
       "L 38.671875 17.1875 \n",
       "Q 31.640625 14.84375 22.453125 11.328125 \n",
       "Q 13.28125 7.8125 7.03125 5.078125 \n",
       "Q 4.6875 10.9375 3.125 13.671875 \n",
       "Q 7.421875 14.453125 11.125 15.421875 \n",
       "Q 14.84375 16.40625 17.578125 17.1875 \n",
       "L 17.578125 48.828125 \n",
       "L 16.015625 48.828125 \n",
       "Q 10.15625 48.828125 5.078125 48.4375 \n",
       "L 5.078125 55.078125 \n",
       "Q 10.15625 54.6875 15.625 54.6875 \n",
       "z\n",
       "M 76.953125 34.375 \n",
       "L 76.953125 57.421875 \n",
       "L 62.890625 57.421875 \n",
       "L 62.890625 34.375 \n",
       "z\n",
       "\" id=\"SimHei-22359\"/>\n",
       "     <path d=\"M 63.28125 79.296875 \n",
       "Q 60.15625 76.5625 57.8125 72.65625 \n",
       "L 82.03125 72.65625 \n",
       "Q 78.125 66.015625 76.953125 64.640625 \n",
       "Q 75.78125 63.28125 73.046875 57.421875 \n",
       "L 88.28125 57.421875 \n",
       "Q 87.890625 52.734375 87.890625 45.703125 \n",
       "L 87.890625 36.71875 \n",
       "Q 87.890625 30.46875 88.28125 25.390625 \n",
       "L 56.25 25.390625 \n",
       "Q 48.4375 25.390625 42.578125 25 \n",
       "L 42.578125 31.640625 \n",
       "Q 48.046875 31.25 55.859375 31.25 \n",
       "L 80.859375 31.25 \n",
       "L 80.859375 38.671875 \n",
       "L 56.25 38.671875 \n",
       "Q 48.4375 38.671875 42.578125 38.28125 \n",
       "L 42.578125 44.921875 \n",
       "Q 48.4375 44.140625 55.859375 44.140625 \n",
       "L 80.859375 44.140625 \n",
       "L 80.859375 51.953125 \n",
       "L 59.375 51.953125 \n",
       "Q 51.953125 51.953125 44.53125 51.5625 \n",
       "L 44.53125 55.859375 \n",
       "Q 42.578125 53.90625 40.625 51.5625 \n",
       "Q 37.109375 53.90625 33.984375 55.859375 \n",
       "Q 41.015625 61.71875 45.109375 67.375 \n",
       "Q 49.21875 73.046875 53.515625 82.8125 \n",
       "Q 57.421875 80.859375 63.28125 79.296875 \n",
       "z\n",
       "M 35.15625 74.609375 \n",
       "Q 33.203125 67.96875 30.859375 60.9375 \n",
       "Q 28.515625 53.90625 26.953125 45.3125 \n",
       "Q 33.203125 37.109375 34.375 31.828125 \n",
       "Q 35.546875 26.5625 34.765625 22.0625 \n",
       "Q 33.984375 17.578125 30.265625 15.8125 \n",
       "Q 26.5625 14.0625 21.09375 12.5 \n",
       "Q 19.921875 16.796875 16.796875 20.3125 \n",
       "Q 22.265625 20.703125 25.1875 21.671875 \n",
       "Q 28.125 22.65625 27.53125 27.53125 \n",
       "Q 26.953125 32.421875 24.609375 36.328125 \n",
       "Q 22.265625 40.234375 19.53125 44.140625 \n",
       "Q 21.09375 49.609375 22.84375 56.046875 \n",
       "Q 24.609375 62.5 25.78125 69.140625 \n",
       "L 14.453125 69.140625 \n",
       "L 14.453125 -8.203125 \n",
       "L 7.03125 -8.203125 \n",
       "Q 7.421875 0.390625 7.421875 7.421875 \n",
       "L 7.421875 58.203125 \n",
       "Q 7.421875 68.359375 7.03125 74.609375 \n",
       "L 35.15625 74.609375 \n",
       "z\n",
       "M 56.25 16.40625 \n",
       "Q 55.859375 13.28125 55.859375 9.375 \n",
       "L 55.859375 3.125 \n",
       "Q 55.859375 -1.953125 61.71875 -1.953125 \n",
       "L 67.1875 -1.953125 \n",
       "Q 71.875 -1.5625 72.65625 0.390625 \n",
       "Q 73.4375 2.34375 73.828125 7.421875 \n",
       "Q 78.125 5.078125 82.03125 4.296875 \n",
       "Q 79.6875 -5.078125 76.75 -6.640625 \n",
       "Q 73.828125 -8.203125 63.671875 -8.390625 \n",
       "Q 53.515625 -8.59375 51.171875 -7.21875 \n",
       "Q 48.828125 -5.859375 48.828125 -1.171875 \n",
       "L 48.828125 5.859375 \n",
       "Q 48.828125 12.109375 48.4375 16.40625 \n",
       "L 56.25 16.40625 \n",
       "z\n",
       "M 46.875 57.8125 \n",
       "Q 52.34375 57.421875 59.375 57.421875 \n",
       "L 65.625 57.421875 \n",
       "Q 67.96875 63.28125 70.3125 67.1875 \n",
       "L 54.296875 67.1875 \n",
       "Q 51.5625 63.671875 46.875 57.8125 \n",
       "z\n",
       "M 44.921875 14.0625 \n",
       "Q 42.96875 11.71875 40.421875 5.859375 \n",
       "Q 37.890625 0 34.765625 -5.46875 \n",
       "Q 31.640625 -3.515625 27.734375 -2.34375 \n",
       "Q 31.640625 3.125 33.390625 7.21875 \n",
       "Q 35.15625 11.328125 37.109375 17.1875 \n",
       "Q 40.625 15.625 44.921875 14.0625 \n",
       "z\n",
       "M 86.71875 19.140625 \n",
       "Q 89.0625 15.234375 91.40625 10.9375 \n",
       "Q 93.75 6.640625 96.484375 1.953125 \n",
       "Q 92.96875 0.78125 89.84375 -1.171875 \n",
       "Q 87.109375 4.6875 84.953125 8.203125 \n",
       "Q 82.8125 11.71875 80.46875 16.015625 \n",
       "Q 83.203125 17.1875 86.71875 19.140625 \n",
       "z\n",
       "M 66.796875 22.265625 \n",
       "Q 67.96875 19.53125 69.328125 16.796875 \n",
       "Q 70.703125 14.0625 71.875 10.15625 \n",
       "Q 68.359375 8.984375 65.234375 7.8125 \n",
       "L 63.28125 13.671875 \n",
       "Q 62.890625 15.625 60.15625 19.921875 \n",
       "Q 64.0625 20.703125 66.796875 22.265625 \n",
       "z\n",
       "\" id=\"SimHei-38544\"/>\n",
       "     <path d=\"M 56.25 19.53125 \n",
       "L 56.25 25.78125 \n",
       "L 41.40625 25.78125 \n",
       "L 41.40625 19.53125 \n",
       "z\n",
       "M 83.203125 56.25 \n",
       "Q 80.859375 60.546875 77.734375 63.28125 \n",
       "Q 81.25 65.234375 83.203125 67.1875 \n",
       "Q 85.546875 64.0625 89.0625 59.765625 \n",
       "Q 85.9375 58.59375 83.203125 56.25 \n",
       "z\n",
       "M 48.4375 31.25 \n",
       "L 48.4375 39.0625 \n",
       "L 41.40625 39.0625 \n",
       "L 41.40625 31.25 \n",
       "z\n",
       "M 48.4375 6.640625 \n",
       "L 48.4375 14.0625 \n",
       "L 41.40625 14.0625 \n",
       "L 41.40625 6.640625 \n",
       "z\n",
       "M 58.203125 62.5 \n",
       "L 58.203125 67.578125 \n",
       "L 40.625 67.578125 \n",
       "L 40.625 60.9375 \n",
       "L 33.59375 60.9375 \n",
       "Q 33.984375 64.453125 33.984375 67.578125 \n",
       "L 18.75 67.578125 \n",
       "Q 13.28125 67.578125 7.421875 66.796875 \n",
       "L 7.421875 73.828125 \n",
       "Q 13.28125 73.4375 18.75 73.046875 \n",
       "L 33.984375 73.046875 \n",
       "Q 33.984375 75.78125 33.59375 81.640625 \n",
       "L 41.015625 81.640625 \n",
       "Q 40.625 75.78125 40.625 73.046875 \n",
       "L 58.203125 73.046875 \n",
       "Q 58.203125 76.171875 57.8125 82.03125 \n",
       "L 65.625 82.03125 \n",
       "Q 64.84375 76.171875 64.84375 73.046875 \n",
       "L 82.03125 73.046875 \n",
       "Q 86.328125 73.046875 93.359375 73.828125 \n",
       "L 93.359375 66.796875 \n",
       "Q 87.5 67.578125 82.03125 67.578125 \n",
       "L 64.84375 67.578125 \n",
       "Q 64.84375 64.84375 65.234375 62.5 \n",
       "z\n",
       "M 64.453125 61.71875 \n",
       "Q 68.75 61.328125 72.265625 61.328125 \n",
       "Q 71.875 57.421875 71.875 55.46875 \n",
       "L 78.90625 55.46875 \n",
       "Q 85.15625 55.46875 92.578125 55.859375 \n",
       "L 92.578125 49.609375 \n",
       "Q 85.546875 50 78.90625 50 \n",
       "L 72.265625 50 \n",
       "Q 73.046875 39.0625 74.40625 31.640625 \n",
       "Q 75.78125 24.21875 76.953125 19.140625 \n",
       "Q 79.296875 23.828125 80.859375 30.265625 \n",
       "Q 82.421875 36.71875 83.203125 43.75 \n",
       "Q 85.9375 42.1875 91.40625 40.234375 \n",
       "Q 89.84375 36.328125 87.296875 27.734375 \n",
       "Q 84.765625 19.140625 80.46875 10.9375 \n",
       "Q 83.984375 4.296875 86.328125 1.5625 \n",
       "Q 88.671875 -1.171875 89.0625 1.359375 \n",
       "Q 89.453125 3.90625 89.84375 8.59375 \n",
       "Q 92.578125 5.859375 96.484375 4.6875 \n",
       "Q 94.140625 -9.375 90.234375 -9.375 \n",
       "Q 86.71875 -9.375 82.8125 -5.078125 \n",
       "Q 78.90625 -0.78125 75.78125 5.078125 \n",
       "Q 71.875 0.390625 67.765625 -2.921875 \n",
       "Q 63.671875 -6.25 58.984375 -9.765625 \n",
       "Q 56.640625 -5.859375 53.90625 -3.515625 \n",
       "Q 57.03125 -1.953125 60.546875 0.390625 \n",
       "Q 56.640625 0.78125 34.765625 0.78125 \n",
       "Q 35.15625 7.03125 35.15625 14.84375 \n",
       "L 35.15625 31.640625 \n",
       "Q 35.15625 38.671875 34.765625 45.3125 \n",
       "Q 55.078125 44.921875 62.109375 45.3125 \n",
       "L 62.109375 39.0625 \n",
       "L 54.6875 39.0625 \n",
       "L 54.6875 31.25 \n",
       "L 62.5 31.25 \n",
       "L 62.5 14.0625 \n",
       "L 54.6875 14.0625 \n",
       "L 54.6875 6.640625 \n",
       "L 62.5 6.640625 \n",
       "L 62.5 1.171875 \n",
       "Q 67.578125 5.46875 72.65625 12.109375 \n",
       "Q 69.140625 22.265625 67.765625 31.640625 \n",
       "Q 66.40625 41.015625 65.625 50 \n",
       "L 30.078125 50 \n",
       "Q 30.078125 25.78125 29.6875 18.546875 \n",
       "Q 29.296875 11.328125 27.53125 4.09375 \n",
       "Q 25.78125 -3.125 21.875 -10.546875 \n",
       "Q 18.359375 -8.59375 14.453125 -7.421875 \n",
       "Q 19.140625 -0.78125 20.890625 6.640625 \n",
       "Q 22.65625 14.0625 23.046875 21.875 \n",
       "L 17.1875 21.875 \n",
       "Q 17.1875 15.625 15.625 9.5625 \n",
       "Q 14.0625 3.515625 9.375 -3.90625 \n",
       "Q 7.03125 -1.953125 3.125 0 \n",
       "Q 6.25 3.515625 8.390625 8.78125 \n",
       "Q 10.546875 14.0625 10.9375 21.875 \n",
       "Q 8.203125 21.875 4.296875 21.484375 \n",
       "L 4.296875 28.515625 \n",
       "Q 10.15625 28.125 16.796875 28.125 \n",
       "L 23.046875 28.125 \n",
       "L 23.046875 37.109375 \n",
       "L 8.984375 37.109375 \n",
       "Q 9.375 42.1875 9.375 47.65625 \n",
       "Q 9.375 53.515625 8.984375 58.203125 \n",
       "L 15.625 58.203125 \n",
       "Q 15.234375 53.515625 15.234375 48.828125 \n",
       "L 15.234375 43.359375 \n",
       "L 23.046875 43.359375 \n",
       "Q 23.046875 51.171875 22.65625 55.46875 \n",
       "L 64.84375 55.46875 \n",
       "Q 64.84375 58.203125 64.453125 61.71875 \n",
       "z\n",
       "\" id=\"SimHei-34255\"/>\n",
       "     <path d=\"M 88.28125 24.609375 \n",
       "Q 87.890625 19.921875 87.890625 8.984375 \n",
       "Q 87.890625 -1.5625 88.28125 -7.03125 \n",
       "L 80.859375 -7.03125 \n",
       "L 80.859375 -0.390625 \n",
       "L 47.265625 -0.390625 \n",
       "L 47.265625 -8.59375 \n",
       "L 39.453125 -8.59375 \n",
       "Q 39.84375 -2.734375 39.84375 7.8125 \n",
       "Q 39.84375 18.75 39.453125 24.609375 \n",
       "L 88.28125 24.609375 \n",
       "z\n",
       "M 33.203125 77.734375 \n",
       "Q 30.859375 75.390625 25.78125 62.109375 \n",
       "L 25.78125 8.59375 \n",
       "Q 25.78125 -3.125 26.171875 -9.765625 \n",
       "L 17.578125 -9.765625 \n",
       "Q 18.75 -2.734375 18.75 8.984375 \n",
       "L 18.75 48.4375 \n",
       "Q 14.0625 39.0625 9.765625 32.8125 \n",
       "Q 7.421875 36.71875 3.90625 39.0625 \n",
       "Q 8.203125 43.75 14.453125 55.65625 \n",
       "Q 20.703125 67.578125 23.828125 80.859375 \n",
       "Q 28.125 79.296875 33.203125 77.734375 \n",
       "z\n",
       "M 80.859375 5.859375 \n",
       "L 80.859375 19.140625 \n",
       "L 47.265625 19.140625 \n",
       "L 47.265625 5.859375 \n",
       "z\n",
       "M 94.921875 60.9375 \n",
       "Q 87.109375 61.328125 64.0625 61.328125 \n",
       "Q 41.015625 61.328125 32.8125 60.9375 \n",
       "L 32.8125 67.578125 \n",
       "L 94.921875 67.578125 \n",
       "z\n",
       "M 89.0625 46.875 \n",
       "Q 82.421875 47.265625 64.84375 47.265625 \n",
       "Q 47.265625 47.265625 38.671875 46.875 \n",
       "L 38.671875 53.515625 \n",
       "Q 46.09375 53.125 64.0625 53.125 \n",
       "Q 82.421875 53.125 89.0625 53.515625 \n",
       "z\n",
       "M 89.0625 33.203125 \n",
       "Q 83.59375 33.59375 65.234375 33.59375 \n",
       "Q 47.265625 33.59375 38.671875 33.203125 \n",
       "L 38.671875 39.84375 \n",
       "Q 46.875 39.453125 65.234375 39.453125 \n",
       "Q 83.984375 39.453125 89.0625 39.84375 \n",
       "z\n",
       "M 62.890625 81.25 \n",
       "Q 64.0625 78.90625 65.234375 76.171875 \n",
       "Q 66.40625 73.4375 67.578125 70.3125 \n",
       "Q 64.0625 69.140625 60.546875 68.359375 \n",
       "Q 57.8125 76.5625 55.859375 78.515625 \n",
       "Q 59.765625 80.078125 62.890625 81.25 \n",
       "z\n",
       "\" id=\"SimHei-20449\"/>\n",
       "     <path d=\"M 48.4375 79.6875 \n",
       "Q 44.53125 73.828125 43.359375 70.703125 \n",
       "L 82.8125 70.703125 \n",
       "Q 82.421875 62.890625 82.421875 49.609375 \n",
       "Q 82.421875 36.71875 82.8125 27.734375 \n",
       "L 17.96875 27.734375 \n",
       "Q 18.359375 36.71875 18.359375 49.609375 \n",
       "Q 18.359375 62.890625 17.96875 70.703125 \n",
       "L 36.328125 70.703125 \n",
       "Q 37.5 73.828125 38.671875 82.03125 \n",
       "Q 42.96875 80.859375 48.4375 79.6875 \n",
       "z\n",
       "M 36.71875 21.09375 \n",
       "Q 36.328125 10.546875 36.328125 5.859375 \n",
       "Q 36.328125 1.171875 37.296875 0.1875 \n",
       "Q 38.28125 -0.78125 43.359375 -0.78125 \n",
       "L 62.890625 -0.78125 \n",
       "Q 65.625 -0.78125 66.59375 0.390625 \n",
       "Q 67.578125 1.5625 67.96875 8.59375 \n",
       "Q 71.09375 6.640625 76.171875 5.46875 \n",
       "Q 74.21875 -2.34375 72.65625 -4.296875 \n",
       "Q 71.09375 -6.25 65.625 -6.640625 \n",
       "L 36.71875 -6.640625 \n",
       "Q 30.46875 -6.25 29.484375 -3.3125 \n",
       "Q 28.515625 -0.390625 28.703125 5.078125 \n",
       "Q 28.90625 10.546875 28.515625 21.09375 \n",
       "L 36.71875 21.09375 \n",
       "z\n",
       "M 75 58.203125 \n",
       "L 75 65.234375 \n",
       "L 25.78125 65.234375 \n",
       "L 25.78125 58.203125 \n",
       "z\n",
       "M 75 33.203125 \n",
       "L 75 40.234375 \n",
       "L 25.78125 40.234375 \n",
       "L 25.78125 33.203125 \n",
       "z\n",
       "M 75 45.703125 \n",
       "L 75 52.734375 \n",
       "L 25.78125 52.734375 \n",
       "L 25.78125 45.703125 \n",
       "z\n",
       "M 81.640625 22.265625 \n",
       "Q 88.28125 13.671875 95.703125 5.078125 \n",
       "Q 91.796875 2.34375 89.0625 -0.390625 \n",
       "Q 81.640625 10.9375 75.390625 17.1875 \n",
       "Q 78.515625 19.140625 81.640625 22.265625 \n",
       "z\n",
       "M 19.921875 16.796875 \n",
       "Q 15.234375 2.34375 12.5 -3.515625 \n",
       "Q 8.984375 -1.953125 4.6875 -0.78125 \n",
       "Q 9.375 5.859375 12.5 18.75 \n",
       "Q 15.625 17.578125 19.921875 16.796875 \n",
       "z\n",
       "M 52.34375 23.4375 \n",
       "Q 56.640625 17.1875 59.375 11.71875 \n",
       "Q 56.640625 10.546875 52.34375 7.8125 \n",
       "Q 49.609375 14.453125 45.703125 19.53125 \n",
       "Q 49.21875 21.484375 52.34375 23.4375 \n",
       "z\n",
       "\" id=\"SimHei-24687\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(120.6 17.04375)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-23545\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-35282\"/>\n",
       "     <use x=\"200\" xlink:href=\"#SimHei-32447\"/>\n",
       "     <use x=\"300\" xlink:href=\"#SimHei-20998\"/>\n",
       "     <use x=\"400\" xlink:href=\"#SimHei-22359\"/>\n",
       "     <use x=\"500\" xlink:href=\"#SimHei-38544\"/>\n",
       "     <use x=\"600\" xlink:href=\"#SimHei-34255\"/>\n",
       "     <use x=\"700\" xlink:href=\"#SimHei-20449\"/>\n",
       "     <use x=\"800\" xlink:href=\"#SimHei-24687\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_3\">\n",
       "   <g clip-path=\"url(#p1aa58f4b34)\">\n",
       "    <image height=\"99\" id=\"image177b4b7387\" transform=\"scale(1 -1)translate(0 -99)\" width=\"99\" x=\"243.529412\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.514338\"/>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- 游程编码隐藏信息 -->\n",
       "    <defs>\n",
       "     <path d=\"M 54.296875 48.828125 \n",
       "Q 57.03125 51.5625 59.171875 55.46875 \n",
       "Q 61.328125 59.375 62.890625 63.46875 \n",
       "Q 64.453125 67.578125 65.8125 72.265625 \n",
       "Q 67.1875 76.953125 67.96875 81.640625 \n",
       "Q 72.265625 79.6875 77.34375 78.90625 \n",
       "Q 75.390625 76.171875 74.21875 73.4375 \n",
       "Q 73.046875 70.703125 72.265625 67.578125 \n",
       "L 79.296875 67.578125 \n",
       "Q 87.109375 67.578125 96.09375 67.96875 \n",
       "L 96.09375 61.328125 \n",
       "Q 87.109375 61.71875 78.90625 61.71875 \n",
       "L 70.3125 61.71875 \n",
       "Q 68.75 58.59375 67.578125 56.046875 \n",
       "Q 66.40625 53.515625 64.84375 50.390625 \n",
       "L 92.578125 50.390625 \n",
       "L 92.578125 42.96875 \n",
       "Q 90.625 41.015625 88.078125 38.671875 \n",
       "Q 85.546875 36.328125 82.421875 32.421875 \n",
       "L 82.421875 27.734375 \n",
       "L 86.71875 27.734375 \n",
       "Q 89.453125 27.734375 96.484375 28.125 \n",
       "L 96.484375 21.484375 \n",
       "Q 90.234375 21.875 86.71875 21.875 \n",
       "L 82.421875 21.875 \n",
       "L 82.421875 0 \n",
       "Q 82.421875 -5.859375 78.90625 -7.609375 \n",
       "Q 75.390625 -9.375 67.1875 -10.546875 \n",
       "Q 66.796875 -7.03125 64.0625 -1.953125 \n",
       "Q 70.3125 -2.34375 72.65625 -1.953125 \n",
       "Q 75 -1.5625 75 3.125 \n",
       "L 75 21.875 \n",
       "L 71.484375 21.875 \n",
       "Q 66.796875 21.875 60.15625 21.484375 \n",
       "L 60.15625 28.125 \n",
       "Q 66.40625 27.734375 71.09375 27.734375 \n",
       "L 75 27.734375 \n",
       "Q 75 31.25 74.609375 34.375 \n",
       "Q 79.296875 38.28125 83.984375 44.53125 \n",
       "L 72.65625 44.53125 \n",
       "L 64.84375 44.140625 \n",
       "L 64.84375 50 \n",
       "Q 62.5 46.875 60.9375 43.75 \n",
       "Q 58.203125 46.484375 54.296875 48.828125 \n",
       "z\n",
       "M 37.890625 0 \n",
       "Q 45.3125 -0.390625 46.484375 0.390625 \n",
       "Q 47.65625 1.171875 47.65625 3.515625 \n",
       "L 47.65625 38.28125 \n",
       "L 39.0625 38.28125 \n",
       "Q 39.0625 31.25 38.28125 24.40625 \n",
       "Q 37.5 17.578125 36.125 11.71875 \n",
       "Q 34.765625 5.859375 32.21875 0.78125 \n",
       "Q 29.6875 -4.296875 25.390625 -9.765625 \n",
       "Q 23.046875 -6.25 18.75 -4.296875 \n",
       "Q 24.609375 0.78125 27.53125 8.390625 \n",
       "Q 30.46875 16.015625 31.25 23.828125 \n",
       "Q 32.03125 31.640625 32.21875 40.234375 \n",
       "Q 32.421875 48.828125 32.421875 57.8125 \n",
       "Q 29.6875 57.8125 24.609375 57.421875 \n",
       "L 24.609375 63.671875 \n",
       "Q 32.8125 63.28125 35.15625 63.28125 \n",
       "L 48.828125 63.28125 \n",
       "Q 52.34375 63.28125 57.421875 63.671875 \n",
       "L 57.421875 57.421875 \n",
       "Q 52.734375 57.8125 48.4375 57.8125 \n",
       "L 39.453125 57.8125 \n",
       "L 39.453125 44.53125 \n",
       "L 55.078125 44.53125 \n",
       "Q 54.6875 38.28125 54.6875 32.8125 \n",
       "L 54.6875 1.953125 \n",
       "Q 54.6875 -1.953125 52.140625 -4.09375 \n",
       "Q 49.609375 -6.25 41.015625 -7.8125 \n",
       "Q 40.625 -4.296875 37.890625 0 \n",
       "z\n",
       "M 23.046875 25 \n",
       "Q 19.921875 16.40625 18.546875 12.109375 \n",
       "Q 17.1875 7.8125 15.421875 2.140625 \n",
       "Q 13.671875 -3.515625 12.5 -9.765625 \n",
       "Q 7.421875 -6.640625 3.515625 -5.46875 \n",
       "Q 8.203125 2.734375 10.15625 8.984375 \n",
       "Q 12.109375 15.234375 13.28125 19.53125 \n",
       "Q 14.453125 23.828125 15.625 28.90625 \n",
       "Q 19.53125 26.5625 23.046875 25 \n",
       "z\n",
       "M 20.3125 37.890625 \n",
       "Q 16.40625 41.015625 12.890625 43.15625 \n",
       "Q 9.375 45.3125 4.296875 47.65625 \n",
       "Q 6.640625 50.78125 8.59375 53.90625 \n",
       "Q 11.71875 51.953125 16.203125 49.40625 \n",
       "Q 20.703125 46.875 24.609375 44.140625 \n",
       "Q 22.265625 40.625 20.3125 37.890625 \n",
       "z\n",
       "M 11.328125 79.296875 \n",
       "Q 13.671875 77.34375 17.765625 74.40625 \n",
       "Q 21.875 71.484375 25 68.75 \n",
       "Q 21.875 65.234375 19.921875 62.5 \n",
       "Q 16.015625 66.796875 6.640625 73.4375 \n",
       "Q 8.984375 76.5625 11.328125 79.296875 \n",
       "z\n",
       "M 39.453125 81.640625 \n",
       "Q 45.703125 72.265625 46.875 69.53125 \n",
       "Q 43.75 68.359375 40.234375 66.015625 \n",
       "Q 39.0625 69.140625 37.5 72.0625 \n",
       "Q 35.9375 75 33.59375 78.125 \n",
       "Q 36.71875 79.6875 39.453125 81.640625 \n",
       "z\n",
       "\" id=\"SimHei-28216\"/>\n",
       "     <path d=\"M 91.015625 77.734375 \n",
       "Q 90.625 69.140625 90.625 62.109375 \n",
       "Q 90.625 55.46875 91.015625 48.828125 \n",
       "L 47.265625 48.828125 \n",
       "Q 47.65625 56.25 47.65625 62.890625 \n",
       "Q 47.65625 69.53125 47.265625 77.734375 \n",
       "L 91.015625 77.734375 \n",
       "z\n",
       "M 6.25 75.390625 \n",
       "Q 12.890625 76.171875 21.28125 77.921875 \n",
       "Q 29.6875 79.6875 35.546875 82.421875 \n",
       "Q 38.28125 77.34375 41.015625 73.828125 \n",
       "Q 38.28125 74.21875 35.34375 73.625 \n",
       "Q 32.421875 73.046875 28.90625 72.65625 \n",
       "L 28.90625 53.515625 \n",
       "Q 34.375 53.515625 40.625 53.90625 \n",
       "L 40.625 46.484375 \n",
       "Q 34.375 46.875 28.90625 46.875 \n",
       "L 28.90625 12.5 \n",
       "Q 28.90625 3.90625 29.296875 -10.546875 \n",
       "L 21.484375 -10.546875 \n",
       "Q 21.875 3.90625 21.875 12.109375 \n",
       "L 21.875 30.078125 \n",
       "Q 16.40625 19.140625 9.765625 9.375 \n",
       "Q 7.03125 13.28125 3.515625 16.40625 \n",
       "Q 8.984375 21.875 13.28125 28.90625 \n",
       "Q 17.578125 35.9375 21.09375 46.875 \n",
       "Q 11.328125 46.875 6.640625 46.484375 \n",
       "L 6.640625 53.90625 \n",
       "Q 13.28125 53.515625 16.40625 53.515625 \n",
       "L 21.875 53.515625 \n",
       "L 21.875 71.09375 \n",
       "Q 16.796875 69.921875 8.984375 68.75 \n",
       "Q 7.8125 72.265625 6.25 75.390625 \n",
       "z\n",
       "M 79.6875 39.0625 \n",
       "Q 85.9375 39.0625 92.96875 39.453125 \n",
       "L 92.96875 32.421875 \n",
       "Q 85.9375 32.8125 79.6875 32.8125 \n",
       "L 72.265625 32.8125 \n",
       "L 72.265625 20.3125 \n",
       "L 76.5625 20.3125 \n",
       "Q 82.421875 20.3125 90.234375 20.703125 \n",
       "L 90.234375 13.28125 \n",
       "Q 82.421875 13.671875 77.734375 13.671875 \n",
       "L 72.265625 13.671875 \n",
       "L 72.265625 0 \n",
       "L 81.640625 0 \n",
       "Q 88.671875 0 96.484375 0.390625 \n",
       "L 96.484375 -7.03125 \n",
       "Q 90.234375 -6.640625 81.640625 -6.640625 \n",
       "L 55.46875 -6.640625 \n",
       "Q 46.875 -6.640625 40.625 -7.421875 \n",
       "L 40.625 0.390625 \n",
       "Q 46.875 0 55.46875 0 \n",
       "L 64.84375 0 \n",
       "L 64.84375 13.671875 \n",
       "L 59.375 13.671875 \n",
       "Q 53.125 13.671875 47.65625 12.890625 \n",
       "L 47.65625 20.703125 \n",
       "Q 53.125 20.3125 59.375 20.3125 \n",
       "L 64.84375 20.3125 \n",
       "L 64.84375 32.8125 \n",
       "L 58.59375 32.8125 \n",
       "Q 51.5625 32.8125 45.3125 32.421875 \n",
       "L 45.3125 39.453125 \n",
       "Q 51.5625 39.0625 58.59375 39.0625 \n",
       "z\n",
       "M 82.421875 55.859375 \n",
       "L 82.421875 71.09375 \n",
       "L 54.6875 71.09375 \n",
       "L 54.6875 55.859375 \n",
       "z\n",
       "M 35.9375 37.5 \n",
       "Q 39.84375 31.640625 44.140625 23.828125 \n",
       "Q 41.796875 22.265625 37.890625 19.140625 \n",
       "Q 33.984375 27.734375 30.078125 33.203125 \n",
       "Q 32.421875 35.15625 35.9375 37.5 \n",
       "z\n",
       "\" id=\"SimHei-31243\"/>\n",
       "     <path d=\"M 66.796875 82.03125 \n",
       "Q 68.359375 75.78125 69.921875 70.3125 \n",
       "L 90.234375 70.3125 \n",
       "Q 89.84375 65.625 89.84375 59.765625 \n",
       "Q 89.84375 53.90625 90.234375 49.609375 \n",
       "L 48.4375 49.609375 \n",
       "Q 48.046875 43.75 47.65625 39.84375 \n",
       "L 93.75 39.84375 \n",
       "Q 93.359375 33.59375 93.359375 26.5625 \n",
       "L 93.359375 -0.390625 \n",
       "Q 93.359375 -6.25 90.8125 -7.8125 \n",
       "Q 88.28125 -9.375 82.421875 -10.9375 \n",
       "Q 81.25 -6.25 78.90625 -2.34375 \n",
       "Q 84.375 -2.34375 85.546875 -1.75 \n",
       "Q 86.71875 -1.171875 86.71875 2.34375 \n",
       "L 86.71875 15.625 \n",
       "L 78.90625 15.625 \n",
       "Q 78.90625 7.03125 79.296875 -0.78125 \n",
       "L 72.265625 -0.78125 \n",
       "Q 72.65625 7.03125 72.65625 15.625 \n",
       "L 64.84375 15.625 \n",
       "Q 64.84375 3.515625 65.234375 -1.171875 \n",
       "L 58.203125 -1.171875 \n",
       "Q 58.59375 3.515625 58.59375 15.625 \n",
       "L 50.78125 15.625 \n",
       "L 50.78125 -10.15625 \n",
       "L 43.359375 -10.15625 \n",
       "Q 44.140625 -2.734375 44.140625 4.296875 \n",
       "L 44.140625 25.390625 \n",
       "Q 41.015625 16.796875 36.71875 9.375 \n",
       "Q 33.984375 14.453125 31.640625 17.1875 \n",
       "Q 35.15625 21.875 37.109375 26.5625 \n",
       "Q 39.0625 31.25 40.234375 39.453125 \n",
       "Q 41.40625 47.65625 41.40625 55.859375 \n",
       "Q 41.40625 64.0625 41.015625 70.3125 \n",
       "L 61.328125 70.3125 \n",
       "Q 60.546875 74.609375 58.59375 79.6875 \n",
       "Q 63.671875 80.859375 66.796875 82.03125 \n",
       "z\n",
       "M 28.515625 76.171875 \n",
       "Q 26.171875 73.828125 21.671875 64.84375 \n",
       "Q 17.1875 55.859375 13.671875 49.21875 \n",
       "L 24.609375 49.609375 \n",
       "Q 26.953125 54.296875 29.296875 60.15625 \n",
       "Q 32.8125 57.421875 37.109375 54.6875 \n",
       "Q 33.59375 51.171875 29.09375 43.9375 \n",
       "Q 24.609375 36.71875 16.796875 26.171875 \n",
       "Q 25 26.953125 32.421875 28.125 \n",
       "L 31.640625 21.09375 \n",
       "Q 26.953125 20.703125 21.09375 19.921875 \n",
       "Q 15.234375 19.140625 8.59375 16.40625 \n",
       "Q 7.8125 20.703125 6.25 24.609375 \n",
       "Q 9.375 25 12.890625 30.078125 \n",
       "Q 16.40625 35.15625 21.875 43.75 \n",
       "Q 18.359375 43.75 14.84375 43.359375 \n",
       "Q 11.328125 42.96875 7.03125 41.40625 \n",
       "Q 5.859375 46.09375 4.296875 49.609375 \n",
       "Q 8.203125 50.390625 12.5 60.34375 \n",
       "Q 16.796875 70.3125 19.140625 80.078125 \n",
       "Q 23.828125 77.34375 28.515625 76.171875 \n",
       "z\n",
       "M 83.203125 55.078125 \n",
       "L 83.203125 64.84375 \n",
       "L 48.4375 64.84375 \n",
       "L 48.4375 55.078125 \n",
       "z\n",
       "M 32.8125 12.5 \n",
       "Q 32.421875 8.203125 32.8125 4.6875 \n",
       "Q 24.609375 2.734375 18.9375 0.78125 \n",
       "Q 13.28125 -1.171875 6.25 -4.6875 \n",
       "L 3.125 4.6875 \n",
       "Q 7.8125 5.078125 16.203125 7.21875 \n",
       "Q 24.609375 9.375 32.8125 12.5 \n",
       "z\n",
       "M 72.65625 21.09375 \n",
       "L 72.65625 34.375 \n",
       "L 64.84375 34.375 \n",
       "L 64.84375 21.09375 \n",
       "z\n",
       "M 86.71875 21.09375 \n",
       "L 86.71875 34.375 \n",
       "L 78.90625 34.375 \n",
       "L 78.90625 21.09375 \n",
       "z\n",
       "M 58.59375 21.09375 \n",
       "L 58.59375 34.375 \n",
       "L 50.78125 34.375 \n",
       "L 50.78125 21.09375 \n",
       "z\n",
       "\" id=\"SimHei-32534\"/>\n",
       "     <path d=\"M 30.859375 74.21875 \n",
       "Q 36.328125 74.21875 42.578125 74.609375 \n",
       "L 42.578125 67.96875 \n",
       "Q 35.9375 68.359375 32.8125 68.359375 \n",
       "L 26.953125 68.359375 \n",
       "Q 25.390625 58.984375 21.875 47.65625 \n",
       "L 40.625 47.65625 \n",
       "Q 40.234375 41.015625 40.234375 35.9375 \n",
       "L 40.234375 17.1875 \n",
       "Q 40.234375 12.109375 40.625 2.34375 \n",
       "L 33.59375 2.34375 \n",
       "L 33.59375 9.375 \n",
       "L 21.875 9.375 \n",
       "L 21.875 -1.953125 \n",
       "L 14.453125 -1.953125 \n",
       "Q 14.84375 7.8125 14.84375 13.671875 \n",
       "L 14.84375 32.03125 \n",
       "Q 12.109375 26.953125 8.59375 20.703125 \n",
       "Q 6.25 23.828125 3.125 26.171875 \n",
       "Q 10.15625 35.546875 14.453125 47.84375 \n",
       "Q 18.75 60.15625 19.53125 68.359375 \n",
       "Q 12.5 68.359375 5.46875 67.96875 \n",
       "L 5.46875 74.609375 \n",
       "Q 12.5 74.21875 17.578125 74.21875 \n",
       "z\n",
       "M 73.828125 37.890625 \n",
       "L 77.734375 70.3125 \n",
       "L 59.765625 70.3125 \n",
       "Q 53.125 70.3125 46.09375 69.921875 \n",
       "L 46.09375 76.953125 \n",
       "Q 53.125 76.171875 59.765625 76.171875 \n",
       "L 85.9375 76.171875 \n",
       "Q 83.984375 65.625 80.859375 37.890625 \n",
       "L 93.359375 37.890625 \n",
       "Q 92.578125 33.59375 91.984375 23.4375 \n",
       "Q 91.40625 13.28125 89.84375 4.6875 \n",
       "Q 88.28125 -3.90625 84.5625 -6.4375 \n",
       "Q 80.859375 -8.984375 69.921875 -9.765625 \n",
       "Q 69.53125 -5.46875 66.796875 -1.171875 \n",
       "Q 76.953125 -1.5625 79.6875 -0.390625 \n",
       "Q 82.421875 0.78125 83.59375 11.125 \n",
       "Q 84.765625 21.484375 85.15625 31.640625 \n",
       "L 48.828125 31.640625 \n",
       "Q 50 40.234375 50.96875 48.625 \n",
       "Q 51.953125 57.03125 52.34375 64.84375 \n",
       "L 60.9375 63.28125 \n",
       "Q 59.375 59.375 58.390625 52.53125 \n",
       "Q 57.421875 45.703125 56.640625 37.890625 \n",
       "z\n",
       "M 33.59375 15.625 \n",
       "L 33.59375 41.40625 \n",
       "L 21.875 41.40625 \n",
       "L 21.875 15.625 \n",
       "z\n",
       "M 67.578125 20.703125 \n",
       "Q 72.265625 20.703125 82.421875 21.09375 \n",
       "L 82.421875 14.0625 \n",
       "Q 71.875 14.453125 64.84375 14.453125 \n",
       "L 54.6875 14.453125 \n",
       "Q 50.390625 14.453125 44.140625 14.0625 \n",
       "L 44.140625 21.09375 \n",
       "Q 48.4375 20.703125 54.6875 20.703125 \n",
       "z\n",
       "\" id=\"SimHei-30721\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(244.764706 17.04375)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-28216\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-31243\"/>\n",
       "     <use x=\"200\" xlink:href=\"#SimHei-32534\"/>\n",
       "     <use x=\"300\" xlink:href=\"#SimHei-30721\"/>\n",
       "     <use x=\"400\" xlink:href=\"#SimHei-38544\"/>\n",
       "     <use x=\"500\" xlink:href=\"#SimHei-34255\"/>\n",
       "     <use x=\"600\" xlink:href=\"#SimHei-20449\"/>\n",
       "     <use x=\"700\" xlink:href=\"#SimHei-24687\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p1988467c4a\">\n",
       "   <rect height=\"98.470588\" width=\"98.470588\" x=\"7.2\" y=\"23.04375\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p567c1a9d15\">\n",
       "   <rect height=\"98.470588\" width=\"98.470588\" x=\"125.364706\" y=\"23.04375\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p1aa58f4b34\">\n",
       "   <rect height=\"98.470588\" width=\"98.470588\" x=\"243.529412\" y=\"23.04375\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方差： 0.0003509521484375\n",
      "峰值信噪比： 82.67832455474016\n"
     ]
    }
   ],
   "source": [
    "plt.subplot(1, 3, 1), plt.imshow(bin_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"原图\")\n",
    "plt.subplot(1, 3, 2), plt.imshow(t_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"对角线分块隐藏信息\")\n",
    "plt.subplot(1, 3, 3), plt.imshow(tt_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"游程编码隐藏信息\")\n",
    "plt.show()\n",
    "myipf.calcMSEPSNR(bin_img, tt_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def insertMark4(src, data):\n",
    "    mask = np.array([\n",
    "        [0, 1, 0],\n",
    "        [1, 0, 1],\n",
    "        [0, 1, 0]\n",
    "    ])\n",
    "    row, col, length, k = int(np.floor(src.shape[0]/3)), int(np.floor(src.shape[1]/3)), len(data)-2, 0\n",
    "    dst_image = src.copy()\n",
    "    for i in range(row):\n",
    "        for j in range(col):\n",
    "            block = dst_image[i*3:i*3+3, j*3:j*3+3] & mask\n",
    "            if np.sum(block) == 4 and k < length:\n",
    "                if data[k+2] == \"1\":\n",
    "                    dst_image[i*3+1][j*3+1] = 1\n",
    "                else:\n",
    "                    dst_image[i*3+1][j*3+1] = 0\n",
    "                k += 1\n",
    "    \n",
    "    return dst_image\n",
    "\n",
    "def getMark4(src, length):\n",
    "    mask = np.array([\n",
    "        [0, 1, 0],\n",
    "        [1, 0, 1],\n",
    "        [0, 1, 0]\n",
    "    ])\n",
    "    row, col, k = int(np.floor(src.shape[0]/3)-1), int(np.floor(src.shape[1]/3)-1), 0\n",
    "    data = \"0b\"\n",
    "    for i in range(row):\n",
    "        for j in range(col):\n",
    "            block = src[i*3:i*3+3, j*3:j*3+3] & mask\n",
    "            if np.sum(block) == 4 and k < length:\n",
    "                if src[i*3+1][j*3+1] == 1:\n",
    "                    data += \"1\"\n",
    "                else:\n",
    "                    data += \"0\"\n",
    "                k += 1\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "ttt_img = insertMark4(bin_img, bin(21553324423))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "getMark4(ttt_img, 35) == bin(21553324423)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"128.620588pt\" version=\"1.1\" viewBox=\"0 0 349.2 128.620588\" width=\"349.2pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <defs>\n",
       "  <style type=\"text/css\">\n",
       "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
       "  </style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 128.620588 \n",
       "L 349.2 128.620588 \n",
       "L 349.2 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:none;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g clip-path=\"url(#p7d806f146e)\">\n",
       "    <image height=\"99\" id=\"imaged1bdf66135\" transform=\"scale(1 -1)translate(0 -99)\" width=\"99\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.420588\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- 原图 -->\n",
       "    <defs>\n",
       "     <path d=\"M 60.15625 66.796875 \n",
       "Q 57.421875 62.890625 56.25 57.8125 \n",
       "L 85.15625 57.8125 \n",
       "Q 84.765625 54.296875 84.765625 46.875 \n",
       "L 84.765625 34.765625 \n",
       "Q 84.765625 28.515625 85.15625 23.046875 \n",
       "L 63.28125 23.046875 \n",
       "L 63.28125 -0.78125 \n",
       "Q 63.28125 -6.25 59.765625 -7.609375 \n",
       "Q 56.25 -8.984375 48.4375 -9.765625 \n",
       "Q 47.65625 -5.078125 45.703125 -0.78125 \n",
       "Q 53.125 -1.171875 54.296875 -0.578125 \n",
       "Q 55.46875 0 55.46875 2.734375 \n",
       "L 55.46875 23.046875 \n",
       "L 33.203125 23.046875 \n",
       "Q 33.59375 27.734375 33.59375 34.375 \n",
       "L 33.59375 47.265625 \n",
       "Q 33.59375 53.515625 33.203125 57.8125 \n",
       "L 49.21875 57.8125 \n",
       "Q 51.5625 66.40625 51.5625 69.140625 \n",
       "L 60.15625 66.796875 \n",
       "z\n",
       "M 4.296875 -5.078125 \n",
       "Q 11.328125 4.296875 13.671875 16.203125 \n",
       "Q 16.015625 28.125 16.015625 35.9375 \n",
       "L 16.015625 64.453125 \n",
       "Q 16.015625 72.65625 15.625 76.5625 \n",
       "L 78.515625 76.5625 \n",
       "Q 87.109375 76.5625 90.625 76.953125 \n",
       "L 90.625 69.921875 \n",
       "Q 87.5 70.3125 78.515625 70.3125 \n",
       "L 23.828125 70.3125 \n",
       "L 23.828125 37.109375 \n",
       "Q 23.4375 25.78125 22.0625 17.375 \n",
       "Q 20.703125 8.984375 17.765625 1.953125 \n",
       "Q 14.84375 -5.078125 12.5 -8.984375 \n",
       "Q 8.59375 -6.25 4.296875 -5.078125 \n",
       "z\n",
       "M 76.953125 43.359375 \n",
       "L 76.953125 51.953125 \n",
       "L 41.015625 51.953125 \n",
       "L 41.015625 43.359375 \n",
       "z\n",
       "M 76.953125 29.296875 \n",
       "L 76.953125 37.5 \n",
       "L 41.015625 37.5 \n",
       "L 41.015625 29.296875 \n",
       "z\n",
       "M 23.046875 -0.78125 \n",
       "Q 28.125 2.34375 32.609375 7.03125 \n",
       "Q 37.109375 11.71875 40.234375 17.1875 \n",
       "Q 43.75 13.671875 46.484375 11.71875 \n",
       "Q 35.9375 -0.78125 28.515625 -6.25 \n",
       "Q 26.171875 -3.515625 23.046875 -0.78125 \n",
       "z\n",
       "M 75.390625 16.796875 \n",
       "Q 89.0625 4.6875 92.578125 0.390625 \n",
       "Q 89.84375 -1.953125 87.109375 -5.078125 \n",
       "Q 82.03125 1.171875 70.3125 11.328125 \n",
       "Q 73.046875 14.453125 75.390625 16.796875 \n",
       "z\n",
       "\" id=\"SimHei-21407\"/>\n",
       "     <path d=\"M 90.625 77.734375 \n",
       "Q 90.234375 67.96875 90.234375 56.25 \n",
       "L 90.234375 14.453125 \n",
       "Q 90.234375 2.34375 90.625 -9.375 \n",
       "L 82.8125 -9.375 \n",
       "L 82.8125 -4.296875 \n",
       "L 17.578125 -4.296875 \n",
       "L 17.578125 -10.15625 \n",
       "L 9.765625 -10.15625 \n",
       "Q 10.15625 1.953125 10.15625 14.84375 \n",
       "L 10.15625 56.25 \n",
       "Q 10.15625 67.578125 9.765625 77.734375 \n",
       "L 90.625 77.734375 \n",
       "z\n",
       "M 82.8125 2.34375 \n",
       "L 82.8125 71.484375 \n",
       "L 17.578125 71.484375 \n",
       "L 17.578125 2.34375 \n",
       "z\n",
       "M 50.390625 66.40625 \n",
       "Q 48.046875 64.0625 46.09375 61.328125 \n",
       "L 72.265625 61.328125 \n",
       "Q 70.703125 57.8125 67.1875 52.734375 \n",
       "Q 63.671875 47.65625 56.25 40.625 \n",
       "Q 67.96875 34.765625 79.296875 33.59375 \n",
       "Q 76.5625 30.078125 74.609375 26.171875 \n",
       "Q 60.15625 30.46875 50.390625 36.71875 \n",
       "Q 39.0625 29.296875 26.171875 25.78125 \n",
       "Q 25 29.296875 21.875 32.421875 \n",
       "Q 34.375 34.375 44.921875 40.625 \n",
       "Q 39.453125 45.703125 37.109375 49.21875 \n",
       "Q 33.59375 45.3125 29.6875 41.40625 \n",
       "Q 26.953125 44.53125 23.828125 46.09375 \n",
       "Q 30.46875 51.5625 35.15625 58.390625 \n",
       "Q 39.84375 65.234375 41.796875 69.921875 \n",
       "Q 45.703125 67.96875 50.390625 66.40625 \n",
       "z\n",
       "M 38.28125 19.921875 \n",
       "Q 55.46875 14.84375 64.0625 11.328125 \n",
       "Q 62.109375 8.203125 60.15625 4.6875 \n",
       "Q 44.140625 11.328125 35.546875 13.28125 \n",
       "Q 37.109375 16.40625 38.28125 19.921875 \n",
       "z\n",
       "M 45.703125 32.03125 \n",
       "Q 58.984375 26.5625 63.671875 25 \n",
       "Q 61.71875 21.875 60.15625 17.96875 \n",
       "Q 46.875 24.21875 42.1875 25.78125 \n",
       "Q 44.140625 28.515625 45.703125 32.03125 \n",
       "z\n",
       "M 41.015625 53.90625 \n",
       "Q 46.875 47.265625 51.171875 44.53125 \n",
       "Q 56.25 48.4375 60.546875 55.078125 \n",
       "L 41.796875 55.078125 \n",
       "L 41.015625 53.90625 \n",
       "z\n",
       "\" id=\"SimHei-22270\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(44.435294 16.95)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-21407\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-22270\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g clip-path=\"url(#paaa9ea27e2)\">\n",
       "    <image height=\"99\" id=\"image1890a8b6a3\" transform=\"scale(1 -1)translate(0 -99)\" width=\"99\" x=\"125.364706\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.420588\"/>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- 游程编码隐藏信息 -->\n",
       "    <defs>\n",
       "     <path d=\"M 54.296875 48.828125 \n",
       "Q 57.03125 51.5625 59.171875 55.46875 \n",
       "Q 61.328125 59.375 62.890625 63.46875 \n",
       "Q 64.453125 67.578125 65.8125 72.265625 \n",
       "Q 67.1875 76.953125 67.96875 81.640625 \n",
       "Q 72.265625 79.6875 77.34375 78.90625 \n",
       "Q 75.390625 76.171875 74.21875 73.4375 \n",
       "Q 73.046875 70.703125 72.265625 67.578125 \n",
       "L 79.296875 67.578125 \n",
       "Q 87.109375 67.578125 96.09375 67.96875 \n",
       "L 96.09375 61.328125 \n",
       "Q 87.109375 61.71875 78.90625 61.71875 \n",
       "L 70.3125 61.71875 \n",
       "Q 68.75 58.59375 67.578125 56.046875 \n",
       "Q 66.40625 53.515625 64.84375 50.390625 \n",
       "L 92.578125 50.390625 \n",
       "L 92.578125 42.96875 \n",
       "Q 90.625 41.015625 88.078125 38.671875 \n",
       "Q 85.546875 36.328125 82.421875 32.421875 \n",
       "L 82.421875 27.734375 \n",
       "L 86.71875 27.734375 \n",
       "Q 89.453125 27.734375 96.484375 28.125 \n",
       "L 96.484375 21.484375 \n",
       "Q 90.234375 21.875 86.71875 21.875 \n",
       "L 82.421875 21.875 \n",
       "L 82.421875 0 \n",
       "Q 82.421875 -5.859375 78.90625 -7.609375 \n",
       "Q 75.390625 -9.375 67.1875 -10.546875 \n",
       "Q 66.796875 -7.03125 64.0625 -1.953125 \n",
       "Q 70.3125 -2.34375 72.65625 -1.953125 \n",
       "Q 75 -1.5625 75 3.125 \n",
       "L 75 21.875 \n",
       "L 71.484375 21.875 \n",
       "Q 66.796875 21.875 60.15625 21.484375 \n",
       "L 60.15625 28.125 \n",
       "Q 66.40625 27.734375 71.09375 27.734375 \n",
       "L 75 27.734375 \n",
       "Q 75 31.25 74.609375 34.375 \n",
       "Q 79.296875 38.28125 83.984375 44.53125 \n",
       "L 72.65625 44.53125 \n",
       "L 64.84375 44.140625 \n",
       "L 64.84375 50 \n",
       "Q 62.5 46.875 60.9375 43.75 \n",
       "Q 58.203125 46.484375 54.296875 48.828125 \n",
       "z\n",
       "M 37.890625 0 \n",
       "Q 45.3125 -0.390625 46.484375 0.390625 \n",
       "Q 47.65625 1.171875 47.65625 3.515625 \n",
       "L 47.65625 38.28125 \n",
       "L 39.0625 38.28125 \n",
       "Q 39.0625 31.25 38.28125 24.40625 \n",
       "Q 37.5 17.578125 36.125 11.71875 \n",
       "Q 34.765625 5.859375 32.21875 0.78125 \n",
       "Q 29.6875 -4.296875 25.390625 -9.765625 \n",
       "Q 23.046875 -6.25 18.75 -4.296875 \n",
       "Q 24.609375 0.78125 27.53125 8.390625 \n",
       "Q 30.46875 16.015625 31.25 23.828125 \n",
       "Q 32.03125 31.640625 32.21875 40.234375 \n",
       "Q 32.421875 48.828125 32.421875 57.8125 \n",
       "Q 29.6875 57.8125 24.609375 57.421875 \n",
       "L 24.609375 63.671875 \n",
       "Q 32.8125 63.28125 35.15625 63.28125 \n",
       "L 48.828125 63.28125 \n",
       "Q 52.34375 63.28125 57.421875 63.671875 \n",
       "L 57.421875 57.421875 \n",
       "Q 52.734375 57.8125 48.4375 57.8125 \n",
       "L 39.453125 57.8125 \n",
       "L 39.453125 44.53125 \n",
       "L 55.078125 44.53125 \n",
       "Q 54.6875 38.28125 54.6875 32.8125 \n",
       "L 54.6875 1.953125 \n",
       "Q 54.6875 -1.953125 52.140625 -4.09375 \n",
       "Q 49.609375 -6.25 41.015625 -7.8125 \n",
       "Q 40.625 -4.296875 37.890625 0 \n",
       "z\n",
       "M 23.046875 25 \n",
       "Q 19.921875 16.40625 18.546875 12.109375 \n",
       "Q 17.1875 7.8125 15.421875 2.140625 \n",
       "Q 13.671875 -3.515625 12.5 -9.765625 \n",
       "Q 7.421875 -6.640625 3.515625 -5.46875 \n",
       "Q 8.203125 2.734375 10.15625 8.984375 \n",
       "Q 12.109375 15.234375 13.28125 19.53125 \n",
       "Q 14.453125 23.828125 15.625 28.90625 \n",
       "Q 19.53125 26.5625 23.046875 25 \n",
       "z\n",
       "M 20.3125 37.890625 \n",
       "Q 16.40625 41.015625 12.890625 43.15625 \n",
       "Q 9.375 45.3125 4.296875 47.65625 \n",
       "Q 6.640625 50.78125 8.59375 53.90625 \n",
       "Q 11.71875 51.953125 16.203125 49.40625 \n",
       "Q 20.703125 46.875 24.609375 44.140625 \n",
       "Q 22.265625 40.625 20.3125 37.890625 \n",
       "z\n",
       "M 11.328125 79.296875 \n",
       "Q 13.671875 77.34375 17.765625 74.40625 \n",
       "Q 21.875 71.484375 25 68.75 \n",
       "Q 21.875 65.234375 19.921875 62.5 \n",
       "Q 16.015625 66.796875 6.640625 73.4375 \n",
       "Q 8.984375 76.5625 11.328125 79.296875 \n",
       "z\n",
       "M 39.453125 81.640625 \n",
       "Q 45.703125 72.265625 46.875 69.53125 \n",
       "Q 43.75 68.359375 40.234375 66.015625 \n",
       "Q 39.0625 69.140625 37.5 72.0625 \n",
       "Q 35.9375 75 33.59375 78.125 \n",
       "Q 36.71875 79.6875 39.453125 81.640625 \n",
       "z\n",
       "\" id=\"SimHei-28216\"/>\n",
       "     <path d=\"M 91.015625 77.734375 \n",
       "Q 90.625 69.140625 90.625 62.109375 \n",
       "Q 90.625 55.46875 91.015625 48.828125 \n",
       "L 47.265625 48.828125 \n",
       "Q 47.65625 56.25 47.65625 62.890625 \n",
       "Q 47.65625 69.53125 47.265625 77.734375 \n",
       "L 91.015625 77.734375 \n",
       "z\n",
       "M 6.25 75.390625 \n",
       "Q 12.890625 76.171875 21.28125 77.921875 \n",
       "Q 29.6875 79.6875 35.546875 82.421875 \n",
       "Q 38.28125 77.34375 41.015625 73.828125 \n",
       "Q 38.28125 74.21875 35.34375 73.625 \n",
       "Q 32.421875 73.046875 28.90625 72.65625 \n",
       "L 28.90625 53.515625 \n",
       "Q 34.375 53.515625 40.625 53.90625 \n",
       "L 40.625 46.484375 \n",
       "Q 34.375 46.875 28.90625 46.875 \n",
       "L 28.90625 12.5 \n",
       "Q 28.90625 3.90625 29.296875 -10.546875 \n",
       "L 21.484375 -10.546875 \n",
       "Q 21.875 3.90625 21.875 12.109375 \n",
       "L 21.875 30.078125 \n",
       "Q 16.40625 19.140625 9.765625 9.375 \n",
       "Q 7.03125 13.28125 3.515625 16.40625 \n",
       "Q 8.984375 21.875 13.28125 28.90625 \n",
       "Q 17.578125 35.9375 21.09375 46.875 \n",
       "Q 11.328125 46.875 6.640625 46.484375 \n",
       "L 6.640625 53.90625 \n",
       "Q 13.28125 53.515625 16.40625 53.515625 \n",
       "L 21.875 53.515625 \n",
       "L 21.875 71.09375 \n",
       "Q 16.796875 69.921875 8.984375 68.75 \n",
       "Q 7.8125 72.265625 6.25 75.390625 \n",
       "z\n",
       "M 79.6875 39.0625 \n",
       "Q 85.9375 39.0625 92.96875 39.453125 \n",
       "L 92.96875 32.421875 \n",
       "Q 85.9375 32.8125 79.6875 32.8125 \n",
       "L 72.265625 32.8125 \n",
       "L 72.265625 20.3125 \n",
       "L 76.5625 20.3125 \n",
       "Q 82.421875 20.3125 90.234375 20.703125 \n",
       "L 90.234375 13.28125 \n",
       "Q 82.421875 13.671875 77.734375 13.671875 \n",
       "L 72.265625 13.671875 \n",
       "L 72.265625 0 \n",
       "L 81.640625 0 \n",
       "Q 88.671875 0 96.484375 0.390625 \n",
       "L 96.484375 -7.03125 \n",
       "Q 90.234375 -6.640625 81.640625 -6.640625 \n",
       "L 55.46875 -6.640625 \n",
       "Q 46.875 -6.640625 40.625 -7.421875 \n",
       "L 40.625 0.390625 \n",
       "Q 46.875 0 55.46875 0 \n",
       "L 64.84375 0 \n",
       "L 64.84375 13.671875 \n",
       "L 59.375 13.671875 \n",
       "Q 53.125 13.671875 47.65625 12.890625 \n",
       "L 47.65625 20.703125 \n",
       "Q 53.125 20.3125 59.375 20.3125 \n",
       "L 64.84375 20.3125 \n",
       "L 64.84375 32.8125 \n",
       "L 58.59375 32.8125 \n",
       "Q 51.5625 32.8125 45.3125 32.421875 \n",
       "L 45.3125 39.453125 \n",
       "Q 51.5625 39.0625 58.59375 39.0625 \n",
       "z\n",
       "M 82.421875 55.859375 \n",
       "L 82.421875 71.09375 \n",
       "L 54.6875 71.09375 \n",
       "L 54.6875 55.859375 \n",
       "z\n",
       "M 35.9375 37.5 \n",
       "Q 39.84375 31.640625 44.140625 23.828125 \n",
       "Q 41.796875 22.265625 37.890625 19.140625 \n",
       "Q 33.984375 27.734375 30.078125 33.203125 \n",
       "Q 32.421875 35.15625 35.9375 37.5 \n",
       "z\n",
       "\" id=\"SimHei-31243\"/>\n",
       "     <path d=\"M 66.796875 82.03125 \n",
       "Q 68.359375 75.78125 69.921875 70.3125 \n",
       "L 90.234375 70.3125 \n",
       "Q 89.84375 65.625 89.84375 59.765625 \n",
       "Q 89.84375 53.90625 90.234375 49.609375 \n",
       "L 48.4375 49.609375 \n",
       "Q 48.046875 43.75 47.65625 39.84375 \n",
       "L 93.75 39.84375 \n",
       "Q 93.359375 33.59375 93.359375 26.5625 \n",
       "L 93.359375 -0.390625 \n",
       "Q 93.359375 -6.25 90.8125 -7.8125 \n",
       "Q 88.28125 -9.375 82.421875 -10.9375 \n",
       "Q 81.25 -6.25 78.90625 -2.34375 \n",
       "Q 84.375 -2.34375 85.546875 -1.75 \n",
       "Q 86.71875 -1.171875 86.71875 2.34375 \n",
       "L 86.71875 15.625 \n",
       "L 78.90625 15.625 \n",
       "Q 78.90625 7.03125 79.296875 -0.78125 \n",
       "L 72.265625 -0.78125 \n",
       "Q 72.65625 7.03125 72.65625 15.625 \n",
       "L 64.84375 15.625 \n",
       "Q 64.84375 3.515625 65.234375 -1.171875 \n",
       "L 58.203125 -1.171875 \n",
       "Q 58.59375 3.515625 58.59375 15.625 \n",
       "L 50.78125 15.625 \n",
       "L 50.78125 -10.15625 \n",
       "L 43.359375 -10.15625 \n",
       "Q 44.140625 -2.734375 44.140625 4.296875 \n",
       "L 44.140625 25.390625 \n",
       "Q 41.015625 16.796875 36.71875 9.375 \n",
       "Q 33.984375 14.453125 31.640625 17.1875 \n",
       "Q 35.15625 21.875 37.109375 26.5625 \n",
       "Q 39.0625 31.25 40.234375 39.453125 \n",
       "Q 41.40625 47.65625 41.40625 55.859375 \n",
       "Q 41.40625 64.0625 41.015625 70.3125 \n",
       "L 61.328125 70.3125 \n",
       "Q 60.546875 74.609375 58.59375 79.6875 \n",
       "Q 63.671875 80.859375 66.796875 82.03125 \n",
       "z\n",
       "M 28.515625 76.171875 \n",
       "Q 26.171875 73.828125 21.671875 64.84375 \n",
       "Q 17.1875 55.859375 13.671875 49.21875 \n",
       "L 24.609375 49.609375 \n",
       "Q 26.953125 54.296875 29.296875 60.15625 \n",
       "Q 32.8125 57.421875 37.109375 54.6875 \n",
       "Q 33.59375 51.171875 29.09375 43.9375 \n",
       "Q 24.609375 36.71875 16.796875 26.171875 \n",
       "Q 25 26.953125 32.421875 28.125 \n",
       "L 31.640625 21.09375 \n",
       "Q 26.953125 20.703125 21.09375 19.921875 \n",
       "Q 15.234375 19.140625 8.59375 16.40625 \n",
       "Q 7.8125 20.703125 6.25 24.609375 \n",
       "Q 9.375 25 12.890625 30.078125 \n",
       "Q 16.40625 35.15625 21.875 43.75 \n",
       "Q 18.359375 43.75 14.84375 43.359375 \n",
       "Q 11.328125 42.96875 7.03125 41.40625 \n",
       "Q 5.859375 46.09375 4.296875 49.609375 \n",
       "Q 8.203125 50.390625 12.5 60.34375 \n",
       "Q 16.796875 70.3125 19.140625 80.078125 \n",
       "Q 23.828125 77.34375 28.515625 76.171875 \n",
       "z\n",
       "M 83.203125 55.078125 \n",
       "L 83.203125 64.84375 \n",
       "L 48.4375 64.84375 \n",
       "L 48.4375 55.078125 \n",
       "z\n",
       "M 32.8125 12.5 \n",
       "Q 32.421875 8.203125 32.8125 4.6875 \n",
       "Q 24.609375 2.734375 18.9375 0.78125 \n",
       "Q 13.28125 -1.171875 6.25 -4.6875 \n",
       "L 3.125 4.6875 \n",
       "Q 7.8125 5.078125 16.203125 7.21875 \n",
       "Q 24.609375 9.375 32.8125 12.5 \n",
       "z\n",
       "M 72.65625 21.09375 \n",
       "L 72.65625 34.375 \n",
       "L 64.84375 34.375 \n",
       "L 64.84375 21.09375 \n",
       "z\n",
       "M 86.71875 21.09375 \n",
       "L 86.71875 34.375 \n",
       "L 78.90625 34.375 \n",
       "L 78.90625 21.09375 \n",
       "z\n",
       "M 58.59375 21.09375 \n",
       "L 58.59375 34.375 \n",
       "L 50.78125 34.375 \n",
       "L 50.78125 21.09375 \n",
       "z\n",
       "\" id=\"SimHei-32534\"/>\n",
       "     <path d=\"M 30.859375 74.21875 \n",
       "Q 36.328125 74.21875 42.578125 74.609375 \n",
       "L 42.578125 67.96875 \n",
       "Q 35.9375 68.359375 32.8125 68.359375 \n",
       "L 26.953125 68.359375 \n",
       "Q 25.390625 58.984375 21.875 47.65625 \n",
       "L 40.625 47.65625 \n",
       "Q 40.234375 41.015625 40.234375 35.9375 \n",
       "L 40.234375 17.1875 \n",
       "Q 40.234375 12.109375 40.625 2.34375 \n",
       "L 33.59375 2.34375 \n",
       "L 33.59375 9.375 \n",
       "L 21.875 9.375 \n",
       "L 21.875 -1.953125 \n",
       "L 14.453125 -1.953125 \n",
       "Q 14.84375 7.8125 14.84375 13.671875 \n",
       "L 14.84375 32.03125 \n",
       "Q 12.109375 26.953125 8.59375 20.703125 \n",
       "Q 6.25 23.828125 3.125 26.171875 \n",
       "Q 10.15625 35.546875 14.453125 47.84375 \n",
       "Q 18.75 60.15625 19.53125 68.359375 \n",
       "Q 12.5 68.359375 5.46875 67.96875 \n",
       "L 5.46875 74.609375 \n",
       "Q 12.5 74.21875 17.578125 74.21875 \n",
       "z\n",
       "M 73.828125 37.890625 \n",
       "L 77.734375 70.3125 \n",
       "L 59.765625 70.3125 \n",
       "Q 53.125 70.3125 46.09375 69.921875 \n",
       "L 46.09375 76.953125 \n",
       "Q 53.125 76.171875 59.765625 76.171875 \n",
       "L 85.9375 76.171875 \n",
       "Q 83.984375 65.625 80.859375 37.890625 \n",
       "L 93.359375 37.890625 \n",
       "Q 92.578125 33.59375 91.984375 23.4375 \n",
       "Q 91.40625 13.28125 89.84375 4.6875 \n",
       "Q 88.28125 -3.90625 84.5625 -6.4375 \n",
       "Q 80.859375 -8.984375 69.921875 -9.765625 \n",
       "Q 69.53125 -5.46875 66.796875 -1.171875 \n",
       "Q 76.953125 -1.5625 79.6875 -0.390625 \n",
       "Q 82.421875 0.78125 83.59375 11.125 \n",
       "Q 84.765625 21.484375 85.15625 31.640625 \n",
       "L 48.828125 31.640625 \n",
       "Q 50 40.234375 50.96875 48.625 \n",
       "Q 51.953125 57.03125 52.34375 64.84375 \n",
       "L 60.9375 63.28125 \n",
       "Q 59.375 59.375 58.390625 52.53125 \n",
       "Q 57.421875 45.703125 56.640625 37.890625 \n",
       "z\n",
       "M 33.59375 15.625 \n",
       "L 33.59375 41.40625 \n",
       "L 21.875 41.40625 \n",
       "L 21.875 15.625 \n",
       "z\n",
       "M 67.578125 20.703125 \n",
       "Q 72.265625 20.703125 82.421875 21.09375 \n",
       "L 82.421875 14.0625 \n",
       "Q 71.875 14.453125 64.84375 14.453125 \n",
       "L 54.6875 14.453125 \n",
       "Q 50.390625 14.453125 44.140625 14.0625 \n",
       "L 44.140625 21.09375 \n",
       "Q 48.4375 20.703125 54.6875 20.703125 \n",
       "z\n",
       "\" id=\"SimHei-30721\"/>\n",
       "     <path d=\"M 63.28125 79.296875 \n",
       "Q 60.15625 76.5625 57.8125 72.65625 \n",
       "L 82.03125 72.65625 \n",
       "Q 78.125 66.015625 76.953125 64.640625 \n",
       "Q 75.78125 63.28125 73.046875 57.421875 \n",
       "L 88.28125 57.421875 \n",
       "Q 87.890625 52.734375 87.890625 45.703125 \n",
       "L 87.890625 36.71875 \n",
       "Q 87.890625 30.46875 88.28125 25.390625 \n",
       "L 56.25 25.390625 \n",
       "Q 48.4375 25.390625 42.578125 25 \n",
       "L 42.578125 31.640625 \n",
       "Q 48.046875 31.25 55.859375 31.25 \n",
       "L 80.859375 31.25 \n",
       "L 80.859375 38.671875 \n",
       "L 56.25 38.671875 \n",
       "Q 48.4375 38.671875 42.578125 38.28125 \n",
       "L 42.578125 44.921875 \n",
       "Q 48.4375 44.140625 55.859375 44.140625 \n",
       "L 80.859375 44.140625 \n",
       "L 80.859375 51.953125 \n",
       "L 59.375 51.953125 \n",
       "Q 51.953125 51.953125 44.53125 51.5625 \n",
       "L 44.53125 55.859375 \n",
       "Q 42.578125 53.90625 40.625 51.5625 \n",
       "Q 37.109375 53.90625 33.984375 55.859375 \n",
       "Q 41.015625 61.71875 45.109375 67.375 \n",
       "Q 49.21875 73.046875 53.515625 82.8125 \n",
       "Q 57.421875 80.859375 63.28125 79.296875 \n",
       "z\n",
       "M 35.15625 74.609375 \n",
       "Q 33.203125 67.96875 30.859375 60.9375 \n",
       "Q 28.515625 53.90625 26.953125 45.3125 \n",
       "Q 33.203125 37.109375 34.375 31.828125 \n",
       "Q 35.546875 26.5625 34.765625 22.0625 \n",
       "Q 33.984375 17.578125 30.265625 15.8125 \n",
       "Q 26.5625 14.0625 21.09375 12.5 \n",
       "Q 19.921875 16.796875 16.796875 20.3125 \n",
       "Q 22.265625 20.703125 25.1875 21.671875 \n",
       "Q 28.125 22.65625 27.53125 27.53125 \n",
       "Q 26.953125 32.421875 24.609375 36.328125 \n",
       "Q 22.265625 40.234375 19.53125 44.140625 \n",
       "Q 21.09375 49.609375 22.84375 56.046875 \n",
       "Q 24.609375 62.5 25.78125 69.140625 \n",
       "L 14.453125 69.140625 \n",
       "L 14.453125 -8.203125 \n",
       "L 7.03125 -8.203125 \n",
       "Q 7.421875 0.390625 7.421875 7.421875 \n",
       "L 7.421875 58.203125 \n",
       "Q 7.421875 68.359375 7.03125 74.609375 \n",
       "L 35.15625 74.609375 \n",
       "z\n",
       "M 56.25 16.40625 \n",
       "Q 55.859375 13.28125 55.859375 9.375 \n",
       "L 55.859375 3.125 \n",
       "Q 55.859375 -1.953125 61.71875 -1.953125 \n",
       "L 67.1875 -1.953125 \n",
       "Q 71.875 -1.5625 72.65625 0.390625 \n",
       "Q 73.4375 2.34375 73.828125 7.421875 \n",
       "Q 78.125 5.078125 82.03125 4.296875 \n",
       "Q 79.6875 -5.078125 76.75 -6.640625 \n",
       "Q 73.828125 -8.203125 63.671875 -8.390625 \n",
       "Q 53.515625 -8.59375 51.171875 -7.21875 \n",
       "Q 48.828125 -5.859375 48.828125 -1.171875 \n",
       "L 48.828125 5.859375 \n",
       "Q 48.828125 12.109375 48.4375 16.40625 \n",
       "L 56.25 16.40625 \n",
       "z\n",
       "M 46.875 57.8125 \n",
       "Q 52.34375 57.421875 59.375 57.421875 \n",
       "L 65.625 57.421875 \n",
       "Q 67.96875 63.28125 70.3125 67.1875 \n",
       "L 54.296875 67.1875 \n",
       "Q 51.5625 63.671875 46.875 57.8125 \n",
       "z\n",
       "M 44.921875 14.0625 \n",
       "Q 42.96875 11.71875 40.421875 5.859375 \n",
       "Q 37.890625 0 34.765625 -5.46875 \n",
       "Q 31.640625 -3.515625 27.734375 -2.34375 \n",
       "Q 31.640625 3.125 33.390625 7.21875 \n",
       "Q 35.15625 11.328125 37.109375 17.1875 \n",
       "Q 40.625 15.625 44.921875 14.0625 \n",
       "z\n",
       "M 86.71875 19.140625 \n",
       "Q 89.0625 15.234375 91.40625 10.9375 \n",
       "Q 93.75 6.640625 96.484375 1.953125 \n",
       "Q 92.96875 0.78125 89.84375 -1.171875 \n",
       "Q 87.109375 4.6875 84.953125 8.203125 \n",
       "Q 82.8125 11.71875 80.46875 16.015625 \n",
       "Q 83.203125 17.1875 86.71875 19.140625 \n",
       "z\n",
       "M 66.796875 22.265625 \n",
       "Q 67.96875 19.53125 69.328125 16.796875 \n",
       "Q 70.703125 14.0625 71.875 10.15625 \n",
       "Q 68.359375 8.984375 65.234375 7.8125 \n",
       "L 63.28125 13.671875 \n",
       "Q 62.890625 15.625 60.15625 19.921875 \n",
       "Q 64.0625 20.703125 66.796875 22.265625 \n",
       "z\n",
       "\" id=\"SimHei-38544\"/>\n",
       "     <path d=\"M 56.25 19.53125 \n",
       "L 56.25 25.78125 \n",
       "L 41.40625 25.78125 \n",
       "L 41.40625 19.53125 \n",
       "z\n",
       "M 83.203125 56.25 \n",
       "Q 80.859375 60.546875 77.734375 63.28125 \n",
       "Q 81.25 65.234375 83.203125 67.1875 \n",
       "Q 85.546875 64.0625 89.0625 59.765625 \n",
       "Q 85.9375 58.59375 83.203125 56.25 \n",
       "z\n",
       "M 48.4375 31.25 \n",
       "L 48.4375 39.0625 \n",
       "L 41.40625 39.0625 \n",
       "L 41.40625 31.25 \n",
       "z\n",
       "M 48.4375 6.640625 \n",
       "L 48.4375 14.0625 \n",
       "L 41.40625 14.0625 \n",
       "L 41.40625 6.640625 \n",
       "z\n",
       "M 58.203125 62.5 \n",
       "L 58.203125 67.578125 \n",
       "L 40.625 67.578125 \n",
       "L 40.625 60.9375 \n",
       "L 33.59375 60.9375 \n",
       "Q 33.984375 64.453125 33.984375 67.578125 \n",
       "L 18.75 67.578125 \n",
       "Q 13.28125 67.578125 7.421875 66.796875 \n",
       "L 7.421875 73.828125 \n",
       "Q 13.28125 73.4375 18.75 73.046875 \n",
       "L 33.984375 73.046875 \n",
       "Q 33.984375 75.78125 33.59375 81.640625 \n",
       "L 41.015625 81.640625 \n",
       "Q 40.625 75.78125 40.625 73.046875 \n",
       "L 58.203125 73.046875 \n",
       "Q 58.203125 76.171875 57.8125 82.03125 \n",
       "L 65.625 82.03125 \n",
       "Q 64.84375 76.171875 64.84375 73.046875 \n",
       "L 82.03125 73.046875 \n",
       "Q 86.328125 73.046875 93.359375 73.828125 \n",
       "L 93.359375 66.796875 \n",
       "Q 87.5 67.578125 82.03125 67.578125 \n",
       "L 64.84375 67.578125 \n",
       "Q 64.84375 64.84375 65.234375 62.5 \n",
       "z\n",
       "M 64.453125 61.71875 \n",
       "Q 68.75 61.328125 72.265625 61.328125 \n",
       "Q 71.875 57.421875 71.875 55.46875 \n",
       "L 78.90625 55.46875 \n",
       "Q 85.15625 55.46875 92.578125 55.859375 \n",
       "L 92.578125 49.609375 \n",
       "Q 85.546875 50 78.90625 50 \n",
       "L 72.265625 50 \n",
       "Q 73.046875 39.0625 74.40625 31.640625 \n",
       "Q 75.78125 24.21875 76.953125 19.140625 \n",
       "Q 79.296875 23.828125 80.859375 30.265625 \n",
       "Q 82.421875 36.71875 83.203125 43.75 \n",
       "Q 85.9375 42.1875 91.40625 40.234375 \n",
       "Q 89.84375 36.328125 87.296875 27.734375 \n",
       "Q 84.765625 19.140625 80.46875 10.9375 \n",
       "Q 83.984375 4.296875 86.328125 1.5625 \n",
       "Q 88.671875 -1.171875 89.0625 1.359375 \n",
       "Q 89.453125 3.90625 89.84375 8.59375 \n",
       "Q 92.578125 5.859375 96.484375 4.6875 \n",
       "Q 94.140625 -9.375 90.234375 -9.375 \n",
       "Q 86.71875 -9.375 82.8125 -5.078125 \n",
       "Q 78.90625 -0.78125 75.78125 5.078125 \n",
       "Q 71.875 0.390625 67.765625 -2.921875 \n",
       "Q 63.671875 -6.25 58.984375 -9.765625 \n",
       "Q 56.640625 -5.859375 53.90625 -3.515625 \n",
       "Q 57.03125 -1.953125 60.546875 0.390625 \n",
       "Q 56.640625 0.78125 34.765625 0.78125 \n",
       "Q 35.15625 7.03125 35.15625 14.84375 \n",
       "L 35.15625 31.640625 \n",
       "Q 35.15625 38.671875 34.765625 45.3125 \n",
       "Q 55.078125 44.921875 62.109375 45.3125 \n",
       "L 62.109375 39.0625 \n",
       "L 54.6875 39.0625 \n",
       "L 54.6875 31.25 \n",
       "L 62.5 31.25 \n",
       "L 62.5 14.0625 \n",
       "L 54.6875 14.0625 \n",
       "L 54.6875 6.640625 \n",
       "L 62.5 6.640625 \n",
       "L 62.5 1.171875 \n",
       "Q 67.578125 5.46875 72.65625 12.109375 \n",
       "Q 69.140625 22.265625 67.765625 31.640625 \n",
       "Q 66.40625 41.015625 65.625 50 \n",
       "L 30.078125 50 \n",
       "Q 30.078125 25.78125 29.6875 18.546875 \n",
       "Q 29.296875 11.328125 27.53125 4.09375 \n",
       "Q 25.78125 -3.125 21.875 -10.546875 \n",
       "Q 18.359375 -8.59375 14.453125 -7.421875 \n",
       "Q 19.140625 -0.78125 20.890625 6.640625 \n",
       "Q 22.65625 14.0625 23.046875 21.875 \n",
       "L 17.1875 21.875 \n",
       "Q 17.1875 15.625 15.625 9.5625 \n",
       "Q 14.0625 3.515625 9.375 -3.90625 \n",
       "Q 7.03125 -1.953125 3.125 0 \n",
       "Q 6.25 3.515625 8.390625 8.78125 \n",
       "Q 10.546875 14.0625 10.9375 21.875 \n",
       "Q 8.203125 21.875 4.296875 21.484375 \n",
       "L 4.296875 28.515625 \n",
       "Q 10.15625 28.125 16.796875 28.125 \n",
       "L 23.046875 28.125 \n",
       "L 23.046875 37.109375 \n",
       "L 8.984375 37.109375 \n",
       "Q 9.375 42.1875 9.375 47.65625 \n",
       "Q 9.375 53.515625 8.984375 58.203125 \n",
       "L 15.625 58.203125 \n",
       "Q 15.234375 53.515625 15.234375 48.828125 \n",
       "L 15.234375 43.359375 \n",
       "L 23.046875 43.359375 \n",
       "Q 23.046875 51.171875 22.65625 55.46875 \n",
       "L 64.84375 55.46875 \n",
       "Q 64.84375 58.203125 64.453125 61.71875 \n",
       "z\n",
       "\" id=\"SimHei-34255\"/>\n",
       "     <path d=\"M 88.28125 24.609375 \n",
       "Q 87.890625 19.921875 87.890625 8.984375 \n",
       "Q 87.890625 -1.5625 88.28125 -7.03125 \n",
       "L 80.859375 -7.03125 \n",
       "L 80.859375 -0.390625 \n",
       "L 47.265625 -0.390625 \n",
       "L 47.265625 -8.59375 \n",
       "L 39.453125 -8.59375 \n",
       "Q 39.84375 -2.734375 39.84375 7.8125 \n",
       "Q 39.84375 18.75 39.453125 24.609375 \n",
       "L 88.28125 24.609375 \n",
       "z\n",
       "M 33.203125 77.734375 \n",
       "Q 30.859375 75.390625 25.78125 62.109375 \n",
       "L 25.78125 8.59375 \n",
       "Q 25.78125 -3.125 26.171875 -9.765625 \n",
       "L 17.578125 -9.765625 \n",
       "Q 18.75 -2.734375 18.75 8.984375 \n",
       "L 18.75 48.4375 \n",
       "Q 14.0625 39.0625 9.765625 32.8125 \n",
       "Q 7.421875 36.71875 3.90625 39.0625 \n",
       "Q 8.203125 43.75 14.453125 55.65625 \n",
       "Q 20.703125 67.578125 23.828125 80.859375 \n",
       "Q 28.125 79.296875 33.203125 77.734375 \n",
       "z\n",
       "M 80.859375 5.859375 \n",
       "L 80.859375 19.140625 \n",
       "L 47.265625 19.140625 \n",
       "L 47.265625 5.859375 \n",
       "z\n",
       "M 94.921875 60.9375 \n",
       "Q 87.109375 61.328125 64.0625 61.328125 \n",
       "Q 41.015625 61.328125 32.8125 60.9375 \n",
       "L 32.8125 67.578125 \n",
       "L 94.921875 67.578125 \n",
       "z\n",
       "M 89.0625 46.875 \n",
       "Q 82.421875 47.265625 64.84375 47.265625 \n",
       "Q 47.265625 47.265625 38.671875 46.875 \n",
       "L 38.671875 53.515625 \n",
       "Q 46.09375 53.125 64.0625 53.125 \n",
       "Q 82.421875 53.125 89.0625 53.515625 \n",
       "z\n",
       "M 89.0625 33.203125 \n",
       "Q 83.59375 33.59375 65.234375 33.59375 \n",
       "Q 47.265625 33.59375 38.671875 33.203125 \n",
       "L 38.671875 39.84375 \n",
       "Q 46.875 39.453125 65.234375 39.453125 \n",
       "Q 83.984375 39.453125 89.0625 39.84375 \n",
       "z\n",
       "M 62.890625 81.25 \n",
       "Q 64.0625 78.90625 65.234375 76.171875 \n",
       "Q 66.40625 73.4375 67.578125 70.3125 \n",
       "Q 64.0625 69.140625 60.546875 68.359375 \n",
       "Q 57.8125 76.5625 55.859375 78.515625 \n",
       "Q 59.765625 80.078125 62.890625 81.25 \n",
       "z\n",
       "\" id=\"SimHei-20449\"/>\n",
       "     <path d=\"M 48.4375 79.6875 \n",
       "Q 44.53125 73.828125 43.359375 70.703125 \n",
       "L 82.8125 70.703125 \n",
       "Q 82.421875 62.890625 82.421875 49.609375 \n",
       "Q 82.421875 36.71875 82.8125 27.734375 \n",
       "L 17.96875 27.734375 \n",
       "Q 18.359375 36.71875 18.359375 49.609375 \n",
       "Q 18.359375 62.890625 17.96875 70.703125 \n",
       "L 36.328125 70.703125 \n",
       "Q 37.5 73.828125 38.671875 82.03125 \n",
       "Q 42.96875 80.859375 48.4375 79.6875 \n",
       "z\n",
       "M 36.71875 21.09375 \n",
       "Q 36.328125 10.546875 36.328125 5.859375 \n",
       "Q 36.328125 1.171875 37.296875 0.1875 \n",
       "Q 38.28125 -0.78125 43.359375 -0.78125 \n",
       "L 62.890625 -0.78125 \n",
       "Q 65.625 -0.78125 66.59375 0.390625 \n",
       "Q 67.578125 1.5625 67.96875 8.59375 \n",
       "Q 71.09375 6.640625 76.171875 5.46875 \n",
       "Q 74.21875 -2.34375 72.65625 -4.296875 \n",
       "Q 71.09375 -6.25 65.625 -6.640625 \n",
       "L 36.71875 -6.640625 \n",
       "Q 30.46875 -6.25 29.484375 -3.3125 \n",
       "Q 28.515625 -0.390625 28.703125 5.078125 \n",
       "Q 28.90625 10.546875 28.515625 21.09375 \n",
       "L 36.71875 21.09375 \n",
       "z\n",
       "M 75 58.203125 \n",
       "L 75 65.234375 \n",
       "L 25.78125 65.234375 \n",
       "L 25.78125 58.203125 \n",
       "z\n",
       "M 75 33.203125 \n",
       "L 75 40.234375 \n",
       "L 25.78125 40.234375 \n",
       "L 25.78125 33.203125 \n",
       "z\n",
       "M 75 45.703125 \n",
       "L 75 52.734375 \n",
       "L 25.78125 52.734375 \n",
       "L 25.78125 45.703125 \n",
       "z\n",
       "M 81.640625 22.265625 \n",
       "Q 88.28125 13.671875 95.703125 5.078125 \n",
       "Q 91.796875 2.34375 89.0625 -0.390625 \n",
       "Q 81.640625 10.9375 75.390625 17.1875 \n",
       "Q 78.515625 19.140625 81.640625 22.265625 \n",
       "z\n",
       "M 19.921875 16.796875 \n",
       "Q 15.234375 2.34375 12.5 -3.515625 \n",
       "Q 8.984375 -1.953125 4.6875 -0.78125 \n",
       "Q 9.375 5.859375 12.5 18.75 \n",
       "Q 15.625 17.578125 19.921875 16.796875 \n",
       "z\n",
       "M 52.34375 23.4375 \n",
       "Q 56.640625 17.1875 59.375 11.71875 \n",
       "Q 56.640625 10.546875 52.34375 7.8125 \n",
       "Q 49.609375 14.453125 45.703125 19.53125 \n",
       "Q 49.21875 21.484375 52.34375 23.4375 \n",
       "z\n",
       "\" id=\"SimHei-24687\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(126.6 16.95)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-28216\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-31243\"/>\n",
       "     <use x=\"200\" xlink:href=\"#SimHei-32534\"/>\n",
       "     <use x=\"300\" xlink:href=\"#SimHei-30721\"/>\n",
       "     <use x=\"400\" xlink:href=\"#SimHei-38544\"/>\n",
       "     <use x=\"500\" xlink:href=\"#SimHei-34255\"/>\n",
       "     <use x=\"600\" xlink:href=\"#SimHei-20449\"/>\n",
       "     <use x=\"700\" xlink:href=\"#SimHei-24687\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_3\">\n",
       "   <g clip-path=\"url(#pccdc3545ff)\">\n",
       "    <image height=\"99\" id=\"imagee13d0a72d8\" transform=\"scale(1 -1)translate(0 -99)\" width=\"99\" x=\"243.529412\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-22.420588\"/>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- 掩膜隐藏信息 -->\n",
       "    <defs>\n",
       "     <path d=\"M 55.46875 70.3125 \n",
       "Q 57.8125 76.953125 57.8125 82.03125 \n",
       "Q 64.0625 80.859375 67.1875 80.46875 \n",
       "Q 65.234375 77.734375 63.28125 70.3125 \n",
       "L 78.90625 70.3125 \n",
       "Q 85.546875 70.3125 92.578125 70.703125 \n",
       "L 92.578125 64.453125 \n",
       "Q 86.328125 64.84375 79.6875 64.84375 \n",
       "L 75.390625 64.84375 \n",
       "Q 79.296875 55.859375 84.5625 51.953125 \n",
       "Q 89.84375 48.046875 96.875 45.3125 \n",
       "Q 94.53125 44.140625 91.015625 38.28125 \n",
       "Q 88.671875 39.84375 84.765625 42.96875 \n",
       "L 84.765625 21.484375 \n",
       "Q 84.765625 15.625 85.15625 9.765625 \n",
       "L 66.796875 9.765625 \n",
       "L 66.796875 1.5625 \n",
       "Q 66.796875 -2.34375 71.484375 -2.34375 \n",
       "L 78.515625 -2.34375 \n",
       "Q 82.421875 -2.34375 83.390625 -1.5625 \n",
       "Q 84.375 -0.78125 85.15625 5.859375 \n",
       "Q 89.0625 3.515625 92.96875 2.734375 \n",
       "Q 91.015625 -3.515625 89.25 -5.859375 \n",
       "Q 87.5 -8.203125 82.421875 -8.203125 \n",
       "L 67.96875 -8.203125 \n",
       "Q 60.15625 -8.203125 60.15625 -1.5625 \n",
       "L 60.15625 9.765625 \n",
       "L 48.828125 9.765625 \n",
       "L 48.828125 2.734375 \n",
       "L 41.40625 2.734375 \n",
       "Q 42.1875 13.671875 42.1875 17.96875 \n",
       "L 42.1875 41.40625 \n",
       "L 38.671875 37.890625 \n",
       "Q 37.109375 40.234375 32.421875 43.359375 \n",
       "Q 39.453125 47.265625 44.140625 52.140625 \n",
       "Q 48.828125 57.03125 53.515625 64.84375 \n",
       "L 51.171875 64.84375 \n",
       "Q 44.921875 64.84375 37.890625 64.453125 \n",
       "L 37.890625 70.703125 \n",
       "Q 43.75 70.3125 51.5625 70.3125 \n",
       "z\n",
       "M 17.1875 58.984375 \n",
       "L 17.1875 69.53125 \n",
       "Q 17.1875 75 16.796875 80.078125 \n",
       "L 24.609375 80.078125 \n",
       "Q 23.828125 75.78125 23.828125 69.53125 \n",
       "L 23.828125 58.984375 \n",
       "Q 28.515625 58.984375 35.546875 59.375 \n",
       "L 35.546875 53.125 \n",
       "Q 29.296875 53.515625 23.828125 53.515625 \n",
       "L 23.828125 36.328125 \n",
       "Q 29.6875 39.0625 33.203125 40.234375 \n",
       "Q 32.8125 35.546875 33.203125 32.8125 \n",
       "Q 30.859375 32.03125 23.828125 29.296875 \n",
       "L 23.828125 0 \n",
       "Q 24.21875 -5.078125 21.28125 -6.828125 \n",
       "Q 18.359375 -8.59375 11.328125 -8.984375 \n",
       "Q 10.546875 -6.640625 7.8125 -0.78125 \n",
       "Q 14.453125 -1.171875 15.8125 -0.578125 \n",
       "Q 17.1875 0 17.1875 3.125 \n",
       "L 17.1875 26.953125 \n",
       "Q 14.84375 26.171875 7.421875 21.875 \n",
       "Q 6.25 25.390625 3.515625 30.46875 \n",
       "Q 7.03125 30.859375 17.1875 33.984375 \n",
       "L 17.1875 53.515625 \n",
       "L 12.109375 53.515625 \n",
       "Q 9.765625 53.515625 5.46875 53.125 \n",
       "L 5.46875 59.375 \n",
       "Q 9.765625 58.984375 15.234375 58.984375 \n",
       "z\n",
       "M 60.15625 42.96875 \n",
       "Q 59.765625 47.65625 59.765625 51.953125 \n",
       "L 67.1875 51.953125 \n",
       "Q 66.796875 48.046875 66.796875 42.96875 \n",
       "L 84.375 42.96875 \n",
       "Q 77.34375 48.046875 74.015625 52.921875 \n",
       "Q 70.703125 57.8125 68.359375 64.84375 \n",
       "L 61.328125 64.84375 \n",
       "Q 55.859375 53.515625 44.140625 42.96875 \n",
       "z\n",
       "M 60.15625 29.296875 \n",
       "L 60.15625 37.5 \n",
       "L 48.828125 37.5 \n",
       "L 48.828125 29.296875 \n",
       "z\n",
       "M 78.125 29.296875 \n",
       "L 78.125 37.5 \n",
       "L 66.796875 37.5 \n",
       "L 66.796875 29.296875 \n",
       "z\n",
       "M 78.125 15.625 \n",
       "L 78.125 23.4375 \n",
       "L 66.796875 23.4375 \n",
       "L 66.796875 15.625 \n",
       "z\n",
       "M 60.15625 15.625 \n",
       "L 60.15625 23.4375 \n",
       "L 48.828125 23.4375 \n",
       "L 48.828125 15.625 \n",
       "z\n",
       "\" id=\"SimHei-25513\"/>\n",
       "     <path d=\"M 88.28125 37.109375 \n",
       "Q 88.28125 30.859375 88.671875 25.78125 \n",
       "L 69.140625 25.78125 \n",
       "Q 68.75 21.875 68.359375 17.1875 \n",
       "L 81.25 17.1875 \n",
       "Q 88.28125 17.1875 93.75 17.578125 \n",
       "L 93.75 11.328125 \n",
       "Q 88.28125 11.71875 81.25 11.71875 \n",
       "L 75 11.71875 \n",
       "Q 78.125 6.25 83.984375 2.140625 \n",
       "Q 89.84375 -1.953125 95.703125 -3.515625 \n",
       "Q 92.1875 -6.25 90.234375 -10.546875 \n",
       "Q 80.078125 -5.078125 75 0.578125 \n",
       "Q 69.921875 6.25 67.96875 11.71875 \n",
       "L 67.1875 11.71875 \n",
       "Q 64.453125 4.6875 59.171875 -0.578125 \n",
       "Q 53.90625 -5.859375 44.140625 -10.9375 \n",
       "Q 41.796875 -7.421875 38.28125 -4.6875 \n",
       "Q 47.65625 -1.171875 52.53125 2.34375 \n",
       "Q 57.421875 5.859375 59.765625 11.71875 \n",
       "L 52.34375 11.71875 \n",
       "Q 45.3125 11.71875 38.671875 11.328125 \n",
       "L 38.671875 17.578125 \n",
       "Q 45.3125 17.1875 52.34375 17.1875 \n",
       "L 61.328125 17.1875 \n",
       "Q 62.109375 21.875 62.109375 25.78125 \n",
       "L 43.75 25.78125 \n",
       "Q 44.140625 32.8125 44.140625 37.5 \n",
       "L 44.140625 44.921875 \n",
       "Q 44.140625 51.171875 43.75 55.859375 \n",
       "L 88.671875 55.859375 \n",
       "Q 88.28125 52.34375 88.28125 45.3125 \n",
       "z\n",
       "M 2.734375 -4.6875 \n",
       "Q 7.03125 1.5625 8.984375 9.765625 \n",
       "Q 10.9375 17.96875 10.9375 26.953125 \n",
       "L 10.9375 62.5 \n",
       "Q 10.9375 69.53125 10.546875 75.78125 \n",
       "L 35.546875 75.78125 \n",
       "Q 35.15625 69.921875 35.15625 61.71875 \n",
       "L 35.15625 -0.390625 \n",
       "Q 34.765625 -7.03125 22.265625 -8.203125 \n",
       "Q 22.265625 -3.90625 19.921875 0.78125 \n",
       "Q 29.296875 0 28.90625 2.734375 \n",
       "L 28.90625 23.046875 \n",
       "L 17.96875 23.046875 \n",
       "Q 17.578125 17.96875 16.015625 9.171875 \n",
       "Q 14.453125 0.390625 9.765625 -8.59375 \n",
       "Q 6.640625 -6.25 2.734375 -4.6875 \n",
       "z\n",
       "M 54.296875 61.328125 \n",
       "L 54.296875 64.84375 \n",
       "L 50 64.84375 \n",
       "Q 44.921875 64.84375 40.234375 64.453125 \n",
       "L 40.234375 70.703125 \n",
       "Q 44.921875 70.3125 50.390625 70.3125 \n",
       "L 54.296875 70.3125 \n",
       "Q 54.296875 76.953125 53.90625 80.46875 \n",
       "L 60.9375 80.46875 \n",
       "Q 60.546875 76.953125 60.546875 70.3125 \n",
       "L 71.875 70.3125 \n",
       "Q 71.875 76.953125 71.484375 80.46875 \n",
       "L 78.515625 80.46875 \n",
       "Q 78.125 77.734375 78.125 70.3125 \n",
       "L 83.59375 70.3125 \n",
       "Q 87.5 70.3125 92.578125 70.703125 \n",
       "L 92.578125 64.453125 \n",
       "Q 87.5 64.84375 83.59375 64.84375 \n",
       "L 78.125 64.84375 \n",
       "L 78.125 60.15625 \n",
       "L 78.515625 57.8125 \n",
       "L 71.875 57.8125 \n",
       "L 71.875 64.84375 \n",
       "L 60.15625 64.84375 \n",
       "L 60.15625 57.8125 \n",
       "L 53.90625 57.8125 \n",
       "z\n",
       "M 81.640625 43.359375 \n",
       "L 81.640625 50.390625 \n",
       "L 50.78125 50.390625 \n",
       "L 50.78125 43.359375 \n",
       "z\n",
       "M 81.640625 31.25 \n",
       "L 81.640625 37.890625 \n",
       "L 50.78125 37.890625 \n",
       "L 50.78125 31.25 \n",
       "z\n",
       "M 28.90625 52.34375 \n",
       "L 28.90625 69.921875 \n",
       "L 17.578125 69.921875 \n",
       "L 17.578125 52.34375 \n",
       "z\n",
       "M 28.90625 28.90625 \n",
       "L 28.90625 46.484375 \n",
       "L 17.578125 46.484375 \n",
       "L 17.578125 28.90625 \n",
       "z\n",
       "\" id=\"SimHei-33180\"/>\n",
       "    </defs>\n",
       "    <g transform=\"translate(256.764706 16.95)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#SimHei-25513\"/>\n",
       "     <use x=\"100\" xlink:href=\"#SimHei-33180\"/>\n",
       "     <use x=\"200\" xlink:href=\"#SimHei-38544\"/>\n",
       "     <use x=\"300\" xlink:href=\"#SimHei-34255\"/>\n",
       "     <use x=\"400\" xlink:href=\"#SimHei-20449\"/>\n",
       "     <use x=\"500\" xlink:href=\"#SimHei-24687\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p7d806f146e\">\n",
       "   <rect height=\"98.470588\" width=\"98.470588\" x=\"7.2\" y=\"22.95\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"paaa9ea27e2\">\n",
       "   <rect height=\"98.470588\" width=\"98.470588\" x=\"125.364706\" y=\"22.95\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pccdc3545ff\">\n",
       "   <rect height=\"98.470588\" width=\"98.470588\" x=\"243.529412\" y=\"22.95\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 432x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方差： 0.00030517578125\n",
      "峰值信噪比： 83.28530295827628\n"
     ]
    }
   ],
   "source": [
    "plt.subplot(1, 3, 1), plt.imshow(bin_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"原图\")\n",
    "plt.subplot(1, 3, 2), plt.imshow(tt_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"游程编码隐藏信息\")\n",
    "plt.subplot(1, 3, 3), plt.imshow(ttt_img, cmap=\"gray\"), plt.axis(\"off\"), plt.title(\"掩膜隐藏信息\")\n",
    "plt.show()\n",
    "myipf.calcMSEPSNR(bin_img, ttt_img)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结论\n",
    "就实验结果而言，使用分块的信息隐藏不可觉察性很低，但随着分块的变小，不可觉察性会增加，但鲁棒性会降低。其他两种不可觉察性都很好，和原二值图的峰值信噪比均为80dB以上。  \n",
    "鲁棒性就分块的方法强一点，其他两种极其容易产生误码，因为这两种方法都把信息隐藏在单个像素上，一旦有噪声或滤波，隐藏的信息很容易就被破坏。  \n",
    "最后一种方法还可以延申，比如0和1采用不同的掩膜，或者选择更加不易察觉变化的掩膜，增加掩膜尺寸。我这里采用是3×3十字形的掩膜，中心位置隐藏信息，可以提高不可觉查性。  \n",
    "\n",
    "表格以最大容量为标准。\n",
    "\n",
    "分块尺寸|容量(C/F)|质量(PSNR)\n",
    "-|-|-\n",
    "分块|0.00005|70.649\n",
    "游程|0.125|82.678\n",
    "掩膜3×3|0.014|83.285"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
